/// <summary> /// Détruit la ward de la team adverse au héros passé en paramètre sur cet emplacement. /// Retourne vrai si la ward a pu être détruite, false si aucune ward de la team /// n'a été trouvée. /// </summary> public bool DestroyWard(EntityHero owner) { EntityType team = owner.Type; if (team.HasFlag(EntityType.Team2)) { if (m_team1Ward == null) { return(false); } m_team1WardOwner.WardCount--; m_team1Ward.Die(); m_team1Ward = null; } else { if (m_team2Ward == null) { return(false); } m_team2WardOwner.WardCount--; m_team2Ward.Die(); m_team2Ward = null; } return(true); }
/// <summary> /// Pose une ward sur cet emplacement. /// Retourne vrai si la ward a pu être posée. /// </summary> public bool PutWard(EntityHero owner) { // Vérifie que le nombre de ward max n'a pas été posé. if (owner.WardCount >= GameServer.GetScene().Constants.Vision.MaxWardsPerHero) { return(false); } // Pose la ward if (owner.Type.HasFlag(EntityType.Team1)) { if (m_team1Ward != null) { return(false); } m_team1WardOwner = owner; m_team1Ward = new EntityWard() { Type = EntityType.Team1 | EntityType.Ward, Position = Position }; GameServer.GetMap().AddEntity(m_team1Ward); } else { if (m_team2Ward != null) { return(false); } m_team2WardOwner = owner; m_team2Ward = new EntityWard() { Type = EntityType.Team2 | EntityType.Ward, Position = Position }; GameServer.GetMap().AddEntity(m_team2Ward); } owner.WardCount++; return(true); }