Float AddTrigger(Script * script) { if (script->VerifyArguments(3) == true) { Word * targetWord = script->GetNextWord(); Word * triggerWord = script->GetNextWord(); Word * subscriptID = script->GetNextOriginalWord(); Script * subscript = script->GetSubscript(subscriptID->value); SpellObject * source = (SpellObject *)script->GetSource(); SpellObject * target = (SpellObject *)script->GetTarget(targetWord); if ((subscript != NULL) && (target != NULL) && (target->GetState() == true) && (triggerWord->type == TRIGGER)) { Spell * spell = (Spell *)script->GetOriginalSource(); if (spell->CheckType(OBJ_TYPE_SPELL) == true) { Script * newScript = new Script; newScript->LoadScript(subscript->GetScript(), source); target->AddTriggeredScript(triggerWord->value, newScript, spell); delete newScript; return false; } } } return false; }