public BossCasterAiBehaviour(CharacterInstance character) { base.Character = character; this.m_parameters = ParseParameters(character.Character.BossAiParameters); this.m_targetingBehaviour = new MonsterTargetingAiBehaviour(character); switch (character.Character.CoreAiBehaviour) { case AiBehaviourType.MonsterRanged: this.m_attackBehaviour = new PursuitAndRangedAttackAiBehaviour(character); break; case AiBehaviourType.MonsterRangedToMelee: this.m_attackBehaviour = new PursuitAndRangedMeleeAttackAiBehaviour(character); break; case AiBehaviourType.MonsterPuffer: this.m_attackBehaviour = new StationarySkillUseAiBehaviour(character, SkillType.PoisonPuff); break; default: this.m_attackBehaviour = new PursuitAndMeleeAttackAiBehaviour(character); break; } for (int i = 0; i < this.m_parameters.PerkTypes.Count; i++) { PerkType perkType = this.m_parameters.PerkTypes[i]; PerkInstance item = new PerkInstance(); item.Type = perkType; item.Modifier = ConfigPerks.GetBestModifier(perkType); character.BossPerks.PerkInstances.Add(item); } this.m_skillTimer.set(ConfigSkills.SHARED_DATA[this.m_parameters.SkillType].BossFirstCastDelay); }
public BossSummonerAiBehaviour(CharacterInstance character) { base.Character = character; this.m_parameters = ParseParameters(character.Character.BossAiParameters); this.m_skillData = ConfigSkills.BOSS_SUMMONER_SKILLS[this.m_parameters.SkillType]; this.m_targetingBehaviour = new MonsterTargetingAiBehaviour(character); switch (character.Character.CoreAiBehaviour) { case AiBehaviourType.MonsterRanged: this.m_attackBehaviour = new PursuitAndRangedAttackAiBehaviour(character); break; case AiBehaviourType.MonsterRangedToMelee: this.m_attackBehaviour = new PursuitAndRangedMeleeAttackAiBehaviour(character); break; case AiBehaviourType.MonsterPuffer: this.m_attackBehaviour = new StationarySkillUseAiBehaviour(character, SkillType.PoisonPuff); break; default: this.m_attackBehaviour = new PursuitAndMeleeAttackAiBehaviour(character); break; } if (this.m_skillData.AiTriggerType == TriggerType.TimeInterval) { this.m_timer = new ManualTimer(this.m_skillData.AiTriggerModifier); } }
public MonsterRangedToMeleeAiBehaviour(CharacterInstance character) { base.Character = character; this.m_targetingBehaviour = new MonsterTargetingAiBehaviour(character); this.m_attackBehaviour = new PursuitAndRangedMeleeAttackAiBehaviour(character); }
public MonsterFireblastAiBehaviour(CharacterInstance character) { base.Character = character; this.m_targetingBehaviour = new MonsterTargetingAiBehaviour(character); this.m_blastTimer.end(); }