예제 #1
0
        private void OnUpdateAttackTarget(BaseMonoEntity entity)
        {
            if ((entity != null) && this._isTutorialAvailable)
            {
                MonsterActor attackee = Singleton <EventManager> .Instance.GetActor <MonsterActor>(entity.GetRuntimeID());

                BaseMonoAvatar localAvatar = Singleton <AvatarManager> .Instance.GetLocalAvatar();

                AvatarActor actor = Singleton <EventManager> .Instance.GetActor <AvatarActor>(localAvatar.GetRuntimeID());

                EntityNature attackerNature = (EntityNature)attackee.metaConfig.nature;
                EntityNature attribute      = (EntityNature)actor.avatarDataItem.Attribute;
                float        num            = DamageModelLogic.GetNatureDamageBonusRatio(attackerNature, attribute, attackee);
                if (((((attackee != null) && (actor != null)) && ((base.step == 0) && (base.GetCurrentStepState() == BaseLevelTutorial.StepState.Sleep))) && ((!this.IsAllStepDone() && (num > 1f)) && ((base.step == 0) && (base.GetCurrentStepState() == BaseLevelTutorial.StepState.Sleep)))) && !this.IsAllStepDone())
                {
                    this.ActiveCurrentStep();
                    this.WaitShowTutorialStep(this.GetDelayTime(base.step), new Action(this.ShowTutorialStep0));
                }
                if ((((attackee != null) && (actor != null)) && ((this._killAmount >= 2) && (this._monsterCreatedAmount > 2))) && (((num > 1f) && (base.step == 2)) && ((base.GetCurrentStepState() == BaseLevelTutorial.StepState.Sleep) && !this.IsAllStepDone())))
                {
                    this.ActiveCurrentStep();
                    this.WaitShowTutorialStep(this.GetDelayTime(base.step), new Action(this.ShowTutorialStep2));
                }
            }
        }
예제 #2
0
 public static float GetNatureDamageBonusRatio(EntityNature attackerNature, EntityNature attackeeNature, BaseAbilityActor attackee)
 {
     if (attackee is MonsterActor)
     {
         return(GetFixedDamageBonusFactor(DEFAULT_MONSTER_NATURE_DAMAGE_TABLE[(int)attackerNature, (int)attackeeNature]));
     }
     if (attackee is AvatarActor)
     {
         return(DEFAULT_AVATAR_NATURE_DAMAGE_TABLE[(int)attackerNature, (int)attackeeNature]);
     }
     return(0f);
 }
예제 #3
0
        public void SetupNatureBonus()
        {
            BaseMonoAvatar localAvatar = Singleton <AvatarManager> .Instance.GetLocalAvatar();

            EntityNature attribute = (EntityNature)Singleton <EventManager> .Instance.GetActor <AvatarActor>(localAvatar.GetRuntimeID()).avatarDataItem.Attribute;

            EntityNature nature          = (EntityNature)this._currentMonster.metaConfig.nature;
            int          natureBonusType = DamageModelLogic.GetNatureBonusType(attribute, nature);

            base.transform.Find("DamageMark/Up").gameObject.SetActive(natureBonusType == 1);
            base.transform.Find("DamageMark/Down").gameObject.SetActive(natureBonusType == -1);
        }
        private int GetAmountOfSameEntityNatureAvatarInTeam(EntityNature entityNature)
        {
            List <AvatarDataItem> memberList = Singleton <LevelScoreManager> .Instance.memberList;
            int num = 0;

            foreach (AvatarDataItem item in memberList)
            {
                if (item.Attribute == this.targetNature)
                {
                    num++;
                }
            }
            return(num);
        }
예제 #5
0
 public static int GetNatureBonusType(EntityNature attackerNature, EntityNature attackeeNature)
 {
     return(DEFAULT_NATURE_CIRCLE[(int)attackerNature, (int)attackeeNature]);
 }
 public MaxAvatarNatureInTeamChallenge(LevelChallengeHelperPlugin helper, LevelChallengeMetaData metaData) : base(helper, metaData)
 {
     this._finished    = false;
     this.targetNum    = base._metaData.paramList[0];
     this.targetNature = base._metaData.paramList[1];
 }