public override void Attach(LogicUnit g, LogicUnit t) { base.Attach(g, t); if (t.type == LogicUnitType.Soldier) { soldier = (Soldier)t; Debuff targetDebuff = soldier.debuffHandler.forbiddenMoveEffect; if (targetDebuff != null) { targetDebuff.Detach(); soldier.debuffHandler.forbiddenMoveTime = 0; } targetDebuff = this; soldier.SetMoveableState(true); soldier.debuffHandler.forbiddenMoveTime = duration; } else { DebugUtils.LogError(DebugUtils.Type.AI_AttributeEffect, string.Format("{0} {1} can't handle {2} {3} now!", t.type, t.id, type, attributeAffectType)); } }
public override void Detach() { soldier.SetMoveableState(false); soldier.debuffHandler.forbiddenMoveEffect = null; soldier.debuffHandler.forbiddenMoveTime = 0; base.Detach(); }