public override void FightEnd(FightTeam winners, FightTeam loosers) { if (State == FightState.STARTING) { Map.Send(FormatFlagDestroy()); } StringBuilder builder = new StringBuilder("GE"); builder.Append(EndTime).Append('|'); builder.Append(ID).Append('|'); builder.Append(Type == FightType.AGRESSION ? 1 : 0); foreach (Fighter fighter in GetFighters()) { builder.Append('|').Append(fighter.Team == winners ? 2 : 0).Append(';'); builder.Append(fighter.ID).Append(';'); builder.Append(fighter.Name).Append(';'); builder.Append(fighter.Level).Append(';'); builder.Append(fighter.Dead ? 1 : 0).Append(';'); builder.Append(";;;;;;;"); } Send(builder.ToString()); State = FightState.FINISHED; foreach (Fighter fighter in GetFighters().OfType <CharacterFighter>()) { if (fighter.Fight == this) { fighter.Buffs.Debuff(); fighter.Character.State.InFight = false; fighter.Character.Fight = null; fighter.Character.Fighter = null; } } KickSpectator(true); Map.RemoveFight(this); Map.Send(Map.FormatFightCount()); }
public abstract void FightEnd(FightTeam winners, FightTeam loosers);
public string FormatFlagOption(ToggleType type, FightTeam team) { return(new StringBuilder("Go").Append(team.IsToggle(type) ? '+' : '-').Append(type == ToggleType.LOCK ? 'A' : (char)type).Append(team.ID).ToString()); }
public bool CanJoin(Character player, FightTeam team) { return(myState == FightState.STARTING && team.CanJoin(player)); }
public FightTeam GetEnnemyTeam(FightTeam team) { return(team == myTeam1 ? myTeam2 : myTeam1); }