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);
            }
        }
예제 #3
0
 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();
 }