コード例 #1
0
 public SkillParam(SkillAimType aimType, E_Unit target, Vector2 direciton, Vector2 position)
 {
     m_aimType   = aimType;
     m_target    = target;
     m_direction = direciton;
     m_position  = position;
 }
コード例 #2
0
 public DE_Skill(DO_Skill skillDo)
 {
     m_skillId       = skillDo.m_skillId;
     m_skillMaxLevel = skillDo.m_skillMaxLevel;
     m_skillAimType  = skillDo.m_skillAimType;
     m_targetCamp    = skillDo.m_targetCamp;
     DE_SkillData[] dataArr = new DE_SkillData[m_skillMaxLevel + 1];
     dataArr[0] = new DE_SkillData(skillDo.m_skillDataAllLevel[0], skillDo.m_skillDataAllLevel[0], m_skillId);
     for (int i = 1; i <= m_skillMaxLevel - 1; i++)
     {
         dataArr[i] = new DE_SkillData(skillDo.m_skillDataAllLevel[i - 1], skillDo.m_skillDataAllLevel[i], m_skillId);
     }
     dataArr[m_skillMaxLevel] = new DE_SkillData(skillDo.m_skillDataAllLevel[m_skillMaxLevel - 1], skillDo.m_skillDataAllLevel[m_skillMaxLevel - 1], m_skillId);
     m_skillDataAllLevel      = new List <DE_SkillData> (dataArr);
 }
コード例 #3
0
 public DO_Skill[] GetSkillsByOccupation(OccupationType occupation) {
     string jsonFile = File.ReadAllText("Data/D_Skill.json");
     s_skillDatas = JsonMapper.ToObject(jsonFile);
     
     int faker=10;
     int ssm=-1;
     switch (occupation){
         case(OccupationType.WARRIOR):
             ssm=0;
             break;
         case(OccupationType.ROGUE):
             ssm=10;
             break;
         case(OccupationType.MAGE):
             ssm=20;
             break;
         case(OccupationType.TAOIST):
             ssm=30;
             break;
         case(OccupationType.ALL):
             ssm=0;
             faker=s_skillDatas.Count;
             break;
     }
     res=new DO_Skill[faker];
     for (int i = ssm; i < faker+ssm; i++)
     {   
         /* if(occupation==OccupationType.ALL){
             Console.WriteLine(i);
         }*/
         DO_Skill skill = new DO_Skill();
         skill.m_skillId = short.Parse(s_skillDatas[i]["SkillID"].ToString());
         skill.m_skillMaxLevel = (short)s_skillDatas[i]["ManaCost"].Count;
         skill.m_fatherIdArr = new short[s_skillDatas[i]["FatherID"].Count];
         for (int j = 0; j < s_skillDatas[i]["FatherID"].Count; j++)
         {
             skill.m_fatherIdArr[j] = short.Parse(s_skillDatas[i]["FatherID"][j].ToString());
         }
         skill.m_childrenIdArr = new short[s_skillDatas[i]["ChildrenIDList"].Count];
         for (int j = 0; j < s_skillDatas[i]["ChildrenIDList"].Count; j++)
         {   
             skill.m_childrenIdArr[j] = short.Parse(s_skillDatas[i]["ChildrenIDList"][j].ToString());
         }
         skill.m_skillAimType = (SkillAimType)Enum.Parse(typeof(SkillAimType), s_skillDatas[i]["SkillAimType"].ToString());
         skill.m_targetCamp = (CampType)Enum.Parse(typeof(CampType), s_skillDatas[i]["CampType"].ToString());
         skill.m_skillDataAllLevel = new DO_SkillData[skill.m_skillMaxLevel];
         for (int j = 0; j < skill.m_skillMaxLevel; j++)
         {
             DO_SkillData skillData = new DO_SkillData();
             skillData.m_skillLevel = (short)(j + 1);
             int sad=j>=(i%10)?j:(i%10);
             if(i>=40){
                 skillData.m_upgradeCharacterLevelInNeed=1;
             }
             else{    
                 skillData.m_upgradeCharacterLevelInNeed = (short)(10 * sad + 1);
             }
             if(i>=40){
                 skillData.m_upgradeMasterlyInNeed=0;
             }
             skillData.m_upgradeMoneyInNeed = GetMoney(j);
             skillData.m_upgradeMasterlyInNeed = 100 * (j + 1);
             if(j==0){
                 skillData.m_upgradeMoneyInNeed=0;
                 skillData.m_upgradeMasterlyInNeed=0;
             }
             skillData.m_mpCost = int.Parse(s_skillDatas[i]["ManaCost"][j].ToString());
             //skillData.m_singTime = 
             skillData.m_castFrontTime = float.Parse(s_skillDatas[i]["CastFrontTime"].ToString())+float.Parse(s_skillDatas[i]["SingTime"].ToString());;
             skillData.m_castBackTime = float.Parse(s_skillDatas[i]["CastBackTime"].ToString());
             skillData.m_coolDownTime = float.Parse(s_skillDatas[i]["CoolDownTime"].ToString());
             skillData.m_targetNumber = byte.Parse(s_skillDatas[i]["TargetNumber"].ToString());
             skillData.m_castRange = float.Parse(s_skillDatas[i]["CastRange"].ToString());                        
             skillData.m_secondParameter=float.Parse(s_skillDatas[i]["SecondParameter"].ToString());
             skillData.m_damageParamArr = new ValueTuple<SkillAimParamType, float>[2];
             float parameter1 = float.Parse(s_skillDatas[i]["DamageRadian"].ToString());
             float parameter2 = float.Parse(s_skillDatas[i]["SecondParameter"].ToString());
             SkillAimType x = skill.m_skillAimType;
             if (x == SkillAimType.AIM_CIRCLE || x == SkillAimType.NOT_AIM_CIRCLE || x == SkillAimType.NOT_AIM_SELF_SECTOR
                 || x == SkillAimType.AIM_SELF_SECTOR || x == SkillAimType.NOT_AIM_SELF_SECTOR)
             {
                 skillData.m_damageParamArr[0] = new ValueTuple<SkillAimParamType, float>
                     (SkillAimParamType.RADIUS, parameter1);
                 skillData.m_damageParamArr[1] = new ValueTuple<SkillAimParamType, float>
                         (SkillAimParamType.RADIAN, ((int)parameter2 == 0) ? 360 : parameter2);
             }
             else
             {
                     skillData.m_damageParamArr[0] = new ValueTuple<SkillAimParamType, float>
                         (SkillAimParamType.LENGTH, parameter1);
                     skillData.m_damageParamArr[1] = new ValueTuple<SkillAimParamType, float>
                         (SkillAimParamType.WIDTH, parameter2);
             }
             DO_Effect effect = new DO_Effect();
             effect.m_type = (EffectType)Enum.Parse(typeof(EffectType), s_skillDatas[i]["Effect"]["EffectDeltaHPType"].ToString());
             effect.m_hitRate = float.Parse(s_skillDatas[i]["Effect"]["HitRate"][j].ToString());
             effect.m_criticalRate = float.Parse(s_skillDatas[i]["Effect"]["CriticalRate"][j].ToString());
             effect.m_deltaMp = int.Parse(s_skillDatas[i]["Effect"]["EffectDeltaMP"][j].ToString());
             effect.m_deltaHp = int.Parse(s_skillDatas[i]["Effect"]["EffectDeltaHP"][j].ToString());
             if(s_skillDatas[i]["Effect"]["SelfHPStrategy"].Count!=0){
                 effect.m_attributeBonusArr = new ValueTuple<ActorUnitConcreteAttributeType, float>[s_skillDatas[i]["Effect"]["SelfHPStrategy"][j].Count];
                 for (int k = 0; k < s_skillDatas[i]["Effect"]["SelfHPStrategy"][j].Count; k++)
                 {
                     effect.m_attributeBonusArr[k] = new ValueTuple<ActorUnitConcreteAttributeType, float>
                     ((ActorUnitConcreteAttributeType)Enum.Parse(typeof(ActorUnitConcreteAttributeType), s_skillDatas[i]["Effect"]["SelfHPStrategy"][j][k].ToString().Split(' ')[0]),
                         float.Parse(s_skillDatas[i]["Effect"]["SelfHPStrategy"][j][k].ToString().Split(' ')[1]));
                 }
             }
             effect.m_statusIdAndValueAndTimeArr = new ValueTuple<short, float, float>[s_skillDatas[i]["Effect"]["StatusAttachArray"].Count];
             for (int wym = 0; wym < s_skillDatas[i]["Effect"]["StatusAttachArray"].Count; wym++)
             {
                 effect.m_statusIdAndValueAndTimeArr[wym] = new ValueTuple<short, float, float>
                     (short.Parse(s_skillDatas[i]["Effect"]["StatusAttachArray"][wym]["StatusID"].ToString()),
                     float.Parse(s_skillDatas[i]["Effect"]["StatusAttachArray"][wym]["Value"][j].ToString()),
                     float.Parse(s_skillDatas[i]["Effect"]["StatusAttachArray"][wym]["LastingTime"][j].ToString()));
             }
             skillData.m_skillEffect = effect;
             skill.m_skillDataAllLevel[j] = skillData;
         }                
         res[i - ssm] = skill;
     }
     return res;
 }
コード例 #4
0
 public static SkillParamGeneratorBase GetSpg(SkillAimType type)
 {
     return(s_spgDict[type]);
 }