Beispiel #1
0
 public override void ApplyFeature(IMobSpawnMap map, Character newChar)
 {
     if (map.Rand.Next(Odds) == 0)
     {
         newChar.BaseForm.Skin = 1;
     }
 }
Beispiel #2
0
 public override void ApplyFeature(IMobSpawnMap map, Character newChar)
 {
     if (newChar.MemberTeam is MonsterTeam)
     {
         newChar.MemberTeam.FoeConflict = true;
     }
 }
Beispiel #3
0
 public override void ApplyFeature(IMobSpawnMap map, Character newChar)
 {
     foreach (BattleEvent effect in CheckEvents)
     {
         newChar.ActionEvents.Add((BattleEvent)effect.Clone());
     }
 }
Beispiel #4
0
 public override void ApplyFeature(IMobSpawnMap map, Character newChar)
 {
     if (newChar.MemberTeam is MonsterTeam)
     {
         ((MonsterTeam)newChar.MemberTeam).Unrecruitable = true;
     }
     newChar.BaseForm.Skin = 0;
 }
Beispiel #5
0
        public override void ApplyFeature(IMobSpawnMap map, Character newChar)
        {
            if (MapStartOnly && map.Begun)
            {
                return;
            }

            newChar.EquippedItem = Items.Pick(map.Rand);
        }
Beispiel #6
0
 public override void ApplyFeature(IMobSpawnMap map, Character newChar)
 {
     newChar.MaxHPBonus = Math.Min(MaxHPBonus, MonsterFormData.MAX_STAT_BOOST);
     newChar.AtkBonus   = Math.Min(AtkBonus, MonsterFormData.MAX_STAT_BOOST);
     newChar.DefBonus   = Math.Min(DefBonus, MonsterFormData.MAX_STAT_BOOST);
     newChar.MAtkBonus  = Math.Min(SpAtkBonus, MonsterFormData.MAX_STAT_BOOST);
     newChar.MDefBonus  = Math.Min(SpDefBonus, MonsterFormData.MAX_STAT_BOOST);
     newChar.SpeedBonus = Math.Min(SpeedBonus, MonsterFormData.MAX_STAT_BOOST);
     newChar.HP         = newChar.MaxHP;
 }
Beispiel #7
0
        public override void ApplyFeature(IMobSpawnMap map, Character newChar)
        {
            if (MapStartOnly && map.Begun)
            {
                return;
            }

            for (int ii = 0; ii < Items.Count; ii++)
            {
                newChar.MemberTeam.AddToInv(Items[ii], true);
            }
        }
Beispiel #8
0
        public override void ApplyFeature(IMobSpawnMap map, Character newChar)
        {
            int clampedLevel = Math.Clamp(newChar.Level, LevelRange.Min, LevelRange.Max);

            newChar.MaxHPBonus = Math.Min(MaxHPBonus.Min + MaxHPBonus.Length * (clampedLevel - LevelRange.Min) / LevelRange.Length, MonsterFormData.MAX_STAT_BOOST);
            newChar.AtkBonus   = Math.Min(AtkBonus.Min + AtkBonus.Length * (clampedLevel - LevelRange.Min) / LevelRange.Length, MonsterFormData.MAX_STAT_BOOST);
            newChar.DefBonus   = Math.Min(DefBonus.Min + DefBonus.Length * (clampedLevel - LevelRange.Min) / LevelRange.Length, MonsterFormData.MAX_STAT_BOOST);
            newChar.MAtkBonus  = Math.Min(SpAtkBonus.Min + SpAtkBonus.Length * (clampedLevel - LevelRange.Min) / LevelRange.Length, MonsterFormData.MAX_STAT_BOOST);
            newChar.MDefBonus  = Math.Min(SpDefBonus.Min + SpDefBonus.Length * (clampedLevel - LevelRange.Min) / LevelRange.Length, MonsterFormData.MAX_STAT_BOOST);
            newChar.SpeedBonus = Math.Min(SpeedBonus.Min + SpeedBonus.Length * (clampedLevel - LevelRange.Min) / LevelRange.Length, MonsterFormData.MAX_STAT_BOOST);
            newChar.HP         = newChar.MaxHP;
        }
Beispiel #9
0
 public override void ApplyFeature(IMobSpawnMap map, Character newChar)
 {
     //set the newChar's uses to 50% (ceiling), hunger to 35%
     newChar.Fullness = 35;
     for (int ii = 0; ii < newChar.Skills.Count; ii++)
     {
         if (newChar.Skills[ii].Element.SkillNum > -1)
         {
             SkillData data = DataManager.Instance.GetSkill(newChar.Skills[ii].Element.SkillNum);
             newChar.SetSkillCharges(ii, (data.BaseCharges - 1) / 2 + 1);
         }
     }
 }
Beispiel #10
0
        public override void ApplyFeature(IMobSpawnMap map, Character newChar)
        {
            StatusEffect status = Statuses.Pick(map.Rand).Clone();//Clone Use Case; convert to Instantiate?

            status.LoadFromData();
            StatusData entry = (StatusData)status.GetData();

            if (!entry.Targeted)//no targeted statuses allowed
            {
                //need to also add the additional status states
                newChar.StatusEffects.Add(status.ID, status);
            }
        }
Beispiel #11
0
 public override void ApplyFeature(IMobSpawnMap map, Character newChar)
 {
     if (Remove)
     {
         for (int ii = StartAt; ii < Character.MAX_SKILL_SLOTS; ii++)
         {
             newChar.DeleteSkill(StartAt);
         }
     }
     else
     {
         for (int ii = StartAt; ii < Character.MAX_SKILL_SLOTS; ii++)
         {
             newChar.Skills[ii].Element.Enabled = false;
         }
     }
 }
Beispiel #12
0
 public override void ApplyFeature(IMobSpawnMap map, Character newChar)
 {
     newChar.Discriminator = Discriminator;
 }
Beispiel #13
0
 public override void ApplyFeature(IMobSpawnMap map, Character newChar)
 {
     newChar.LuaDataTable = LuaEngine.Instance.RunString("return " + LuaTable).First() as LuaTable;
 }
Beispiel #14
0
 public override void ApplyFeature(IMobSpawnMap map, Character newChar)
 {
     newChar.CharLoc = Loc;
     newChar.CharDir = Dir;
 }
Beispiel #15
0
 public override void ApplyFeature(IMobSpawnMap map, Character newChar)
 {
     newChar.Level += (map.ID - StartFromID) * AddNumerator / AddDenominator;
     newChar.HP     = newChar.MaxHP;
 }
Beispiel #16
0
 public abstract void ApplyFeature(IMobSpawnMap map, Character newChar);