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; }