public void RemoveTrap(Trap trap)
 {
     int index = traps.IndexOf(trap);
     if (index >= 0 && index < traps.Length)
         traps[index] = null;
 }
 public void PlaceTrapInFrontOfPartyMember(PartyMember partyMember, Trap trap)
 {
     int index = layout.IndexOf(GetListWithPartyMember(partyMember));
     if (index < 0 || index >= traps.Length)
         return;
     if (traps[index] != null)
         traps[index].Kill();
     traps[index] = trap;
 }
        private void _createTrap(object[] args)
        {
            // createTrap(string actorPartyMemberSelector, string targetPartyMemberSelector, string spriteName)
            string actorPartyMemberSelector = (string)args[0];
            string targetPartyMemberSelector = (string)args[1];
            string spriteName = (string)args[2];

            PartyMember actorPartyMember = getPartyMemberFromSelector(actorPartyMemberSelector);
            PartyMember frontPartyMember = getPartyMemberFromSelector(targetPartyMemberSelector + ">list>front");
            float nudgeMultiplierX = battle.GetPartyForPartyMember(actorPartyMember) == battle.PlayerParty ? 1.0f : -1.0f;
            Rectangle boundingBox = frontPartyMember.BattleEntity.GetBoundingBox();
            Vector2 position = new Vector2(boundingBox.X + (boundingBox.Width / 2.0f) + (boundingBox.Width * nudgeMultiplierX), boundingBox.Bottom);

            Trap trap = new Trap(ResourceManager.GetNewSprite(spriteName), position, actorPartyMember.EquippedWeapon.Attributes, actorPartyMember.EquippedWeapon.Data, actorPartyMember, battle);
            battle.GetPartyBattleLayoutForPartyMember(frontPartyMember).PlaceTrapInFrontOfPartyMember(frontPartyMember, trap);
        }
 public List<PartyMember> GetListBehindTrap(Trap trap)
 {
     int index = traps.IndexOf(trap);
     if (index < 0 || index >= layout.Count)
         throw new Exception("Trap not found in PartyBattleLayout");
     return layout[index];
 }
 public int CalculateDamageTaken(Trap trap)
 {
     int result = calculateDamageTaken(trap.Data.Power);
     result = modifyStatFromAttributes(result, trap.Attributes);
     return result;
 }