Déjà, tu devrais utiliser des
actions pour faire ça :
actions
DestroyBlockingLight;
components
// ...
obstacle TFilter5WithMessage
name 'Point de lumière bloqueur.';
image 'Filters/LightenCircle';
on Pushing do
begin
inherited;
if Player can DestroyBlockingLight then
Square.Obstacle := nil
else
Player.ShowMessage('Il te faut un '' pour détruire ce point de lumière .');
end;
end;
object TObjectNoNamed
// ...
action DestroyBlockingLight;
end;
Ensuite, oui, tu peux insérer le nom d'un objet. Il suffit d'accéder à son attribut Name. Et pour faire bien, utiliser un Format :
if Player can DestroyBlockingLight then
Square.Obstacle := nil
else
Player.ShowMessage(Format(
'Il te faut un %s pour détruire ce point de lumière .',
[ObjectNoNamed.Name]));
end;
Mais je ne comprends pas bien le lien avec ceci :
intello
En gros le joueur n'aurait qu'à choisir le nom de l'objet qui va détruire le point de lumière.
Moi je comprends ça comme : le joueur a plusieurs objets qui pourraient lui permettre de détruire le point de lumière, et tu voudrais lui demander lequel il veut utiliser ?
Si c'est ça, c'est
automatique si tu utilises des actions, comme je l'ai écrit plus haut. Si le joueur a plusieurs objets qui déclarent réaliser l'action DestroyBlockingLight, eh bien FunLabyrinthe va lui demander tout seul lequel il veut utiliser lorsqu'on fait
if Player can DestroyBlockingLight then