public override void Remove(Item item) { // Entferne angreifbares Objekt if (item.ContainsProperty <AttackableProperty>() && attackables.ContainsKey(item.Id)) { // Angriffe auf ein entferntes Element stoppen AttackableProperty attackable = attackables[item.Id]; foreach (AttackerProperty attacker in attackers.Values) { if (attacker.AttackTarget == attackable) { attacker.StopAttack(); } } // entfernen attackables.Remove(item.Id); } // Entferne angreifendes Objekt if (item.ContainsProperty <AttackerProperty>() && attackers.ContainsKey(item.Id)) { // Angriffe stoppen AttackerProperty attacker = attackers[item.Id]; attacker.StopAttack(); // entfernen attackers.Remove(item.Id); } }
/// <summary> /// Stop to attack Items. /// </summary> public void StopAttack() { attacker.StopAttack(); }