public DefaultChallenge(int id, IFight fight) { Id = id; Bonus = 0; Fight = fight; Status = ChallengeStatusEnum.RUNNING; }
protected static void VerifyFighterDuration(IFight fight, string name, TimeSpan fightDuration, TimeSpan fighterDuration) { Fighter fighter = fight.Fighters.FirstOrDefault(x => x.Character.Name == name); Assert.AreEqual(fightDuration, fighter.OffensiveStatistics.Duration.FightDuration); Assert.AreEqual(fighterDuration, fighter.OffensiveStatistics.Duration.FighterDuration); }
void OnTurnStarted(IFight fight, FightActor fighter) { if (fighter == Target) { UpdateStatus(ChallengeStatusEnum.FAILED); } }
void OnTurnStarted(IFight fight, FightActor player) { if (IsFighterTurn()) { PassTurn(); } }
public FightPath(FightActor fighter, IFight fight, Path path) : base(fight.Map, path.GetPath()) { Fight = fight; Fighter = fighter; AdjustPath(); }
public static void SendGameFightSpectateMessage(IPacketReceiver client, IFight fight) { client.Send(new GameFightSpectateMessage( fight.GetBuffs().Select(entry => entry.GetFightDispellableEffectExtendedInformations()), fight.GetTriggers().Select(entry => entry.GetHiddenGameActionMark()), fight.TimeLine.RoundNumber, !fight.IsStarted ? 0 : fight.StartTime.GetUnixTimeStamp(), fight.ActiveIdols.Select(x => x.GetNetworkIdol()))); }
private static void OnFightCreated(IFight fight) { if (fight is FightPvM) { fight.GeneratingResults += OnGeneratingResults; } }
private void OnTurnStopped(IFight fight, FightActor fighter) { if (fighter.IsDead()) { return; } if (!(fighter is CharacterFighter)) { return; } if (Id == (int)ChallengeEnum.NOMADE && fighter.MP <= 0) { return; } if (Id == (int)ChallengeEnum.PÉTULANT && fighter.AP <= 0) { return; } UpdateStatus(ChallengeStatusEnum.FAILED); Fight.BeforeTurnStopped -= OnTurnStopped; }
public TimeLine(IFight fight) { Fight = fight; Fighters = new List <FightActor>(); RoundNumber = 1; NewRound = true; }
public SpellUseChallenge(int id, IFight fight) : base(id, fight) { if (id == (int)ChallengeEnum.CASINO_ROYAL) { BonusMin = 30; BonusMax = 30; } else { BonusMin = 10; BonusMax = 20; } switch ((ChallengeEnum)Id) { case ChallengeEnum.JARDINIER: m_spell = (int)SpellIdEnum.CAWOTTE_367; break; case ChallengeEnum.FOSSOYEUR: m_spell = (int)SpellIdEnum.INVOCATION_DE_CHAFERFU; break; case ChallengeEnum.CASINO_ROYAL: m_spell = (int)SpellIdEnum.ROULETTE; break; case ChallengeEnum.ARAKNOPHILE: m_spell = (int)SpellIdEnum.INVOCATION_D_ARAKNE_370; break; } }
void OnTurnStarted(IFight fight, FightActor fighter) { if (fighter is CharacterFighter) { Target = Fight.GetRandomFighter <MonsterFighter>(); } }
private static Fighter GetFighter(string name, IFight iFight, bool isPet) { var fighter = iFight.Fighters.FirstOrDefault(x => x.Character.Name == name && x.Character.IsPet == isPet); Assert.IsNotNull(fighter, $"Fighter doesn't exist - {name}"); return(fighter); }
void OnBeforeTurnStopped(IFight fight, FightActor fighter) { if (fighter is SummonedFighter && m_kills > 1) { UpdateStatus(ChallengeStatusEnum.FAILED, fighter); } if (!(fighter is CharacterFighter)) { m_kills = 0; return; } if (m_kills == 0) { return; } if (m_kills != 2) { UpdateStatus(ChallengeStatusEnum.FAILED, fighter); } m_kills = 0; }
public SexChallenge(int id, IFight fight) : base(id, fight) { BonusMin = 35; BonusMax = 35; m_sexType = id == (int)ChallengeEnum.NI_PIOUTES_NI_SOUMISES ? SexTypeEnum.SEX_FEMALE : SexTypeEnum.SEX_MALE; }
public ElementaryChallenge(int id, IFight fight) : base(id, fight) { BonusMin = 30; BonusMax = 50; m_element = EffectSchoolEnum.Unknown; }
protected override void OnWinnersDetermined(IFight fight, FightTeam winners, FightTeam losers, bool draw) { OnTurnStopped(fight, fight.FighterPlaying); base.OnWinnersDetermined(fight, winners, losers, draw); Fight.TurnStopped -= OnTurnStopped; }
public TwoForThePriceOfOneChallenge(int id, IFight fight) : base(id, fight) { BonusMin = 60; BonusMax = 60; m_kills = 0; }
public void AddStrategy(Affinity aff, FightTactic tactics, IFight fightStrat) { if (!_strategies.ContainsKey(tactics)) { _strategies[tactics] = new Dictionary <Affinity, IFight>(); } _strategies[tactics][aff] = fightStrat; }
protected override void OnWinnersDetermined(IFight fight, FightTeam winners, FightTeam losers, bool draw) { base.OnWinnersDetermined(fight, winners, losers, draw); foreach (var fighter in m_monsters) { fighter.Dead -= OnDead; } }
protected override void OnWinnersDetermined(IFight fight, FightTeam winners, FightTeam losers, bool draw) { base.OnWinnersDetermined(fight, winners, losers, draw); foreach (var fighter in Fight.GetAllFighters <MonsterFighter>()) { fighter.FightPointsVariation -= OnFightPointsVariation; } }
private void OnTurnStopped(IFight fight, FightActor fighter) { if (fighter is CharacterFighter && !WeaponAttack) { UpdateStatus(ChallengeStatusEnum.FAILED, fighter); } WeaponAttack = false; }
protected override void OnWinnersDetermined(IFight fight, FightTeam winners, FightTeam losers, bool draw) { base.OnWinnersDetermined(fight, winners, losers, draw); foreach (var fighter in Fight.GetAllFighters <CharacterFighter>()) { fighter.WeaponUsed -= OnWeaponUsed; } }
protected override void OnWinnersDetermined(IFight fight, FightTeam winners, FightTeam losers, bool draw) { base.OnWinnersDetermined(fight, winners, losers, draw); foreach (var fighter in Fight.GetAllFighters <MonsterFighter>()) { fighter.DamageInflicted -= OnDamageInflicted; } }
protected virtual void OnTurnStarted(IFight fight, FightActor currentfighter) { if (!IsFighterTurn()) { return; } PlayIA(); }
protected Fighter VerifyFighterStatistics(string name, IFight iFight, int offHit, int offHeal, int offMisses, int offKills, int defHit, int defHeal, int defMisses, int defKills, bool isPet = false) { var fighter = GetFighter(name, iFight, isPet); VerifyFightStats(fighter.OffensiveStatistics, fighter.Character.Name, offHit, offHeal, offMisses, offKills); VerifyFightStats(fighter.DefensiveStatistics, fighter.Character.Name, defHit, defHeal, defMisses, defKills); return(fighter); }
protected override void OnTurnStarted(IFight fight, FightActor currentfighter) { if (IsControlled()) { return; } base.OnTurnStarted(fight, currentfighter); }
protected override void OnWinnersDetermined(IFight fight, FightTeam winners, FightTeam losers, bool draw) { base.OnWinnersDetermined(fight, winners, losers, draw); foreach (var fighter in Fight.GetAllFighters <MonsterFighter>()) { fighter.Stats[PlayerFields.Range].Modified -= OnRangeModified; } }
public static ReadyChecker RequestCheck(IFight fight, Action success, Action <CharacterFighter[]> fail) { var checker = new ReadyChecker(fight, fight.GetAllFighters <CharacterFighter>(entry => !entry.HasLeft()).ToList()); checker.Success += chk => success(); checker.Timeout += (chk, laggers) => fail(laggers); checker.Start(); return(checker); }
protected void VerifyFightStatistics(string fightMob, IFight fight, int hit, int heal, int misses, int kills) { Assert.IsNotNull(fight, $"Fight doesn't exist - {fightMob}"); var stats = fight.Statistics; Assert.AreEqual(hit, stats.Hit.Total, $"Offensive hit - {fight.PrimaryMob.Name}"); Assert.AreEqual(heal, stats.Heal.Total, $"Offensive heal - {fight.PrimaryMob.Name}"); Assert.AreEqual(misses, stats.Miss.Count, $"Offensive misses - {fight.PrimaryMob.Name}"); Assert.AreEqual(kills, stats.Kill.Count, $"Offensive kills - {fight.PrimaryMob.Name}"); }
protected override void OnWinnersDetermined(IFight fight, FightTeam winners, FightTeam losers, bool draw) { base.OnWinnersDetermined(fight, winners, losers, draw); foreach (var fighter in Fight.GetAllFighters <MonsterFighter>()) { fighter.Dead -= OnDead; } Fight.BeforeTurnStopped -= OnBeforeTurnStopped; }