예제 #1
0
    public static bool ReadMobData()
    {
        if (!File.Exists(Config.LocalePath + "mob_data"))
        {
            return(false);
        }

        string raw = File.ReadAllText(Config.LocalePath + "mob_data");

        if (raw == "")
        {
            return(false);
        }

        try
        {
            int       len   = getFinalLocaleId(raw);
            MobData[] mobs  = new MobData[len];
            string[]  lines = raw.Split(Environment.NewLine.ToCharArray());
            for (int l = 0; l < lines.Length; l++)
            {
                if (lines[l] == "" || lines[l][0] == '#')
                {
                    continue;
                }

                string[] line_contents = lines[l].Split('\t');
                Int32.TryParse(line_contents[0].ToString(), out int id);
                string        name          = line_contents[1];
                MOB_WALK_TYPE walk_type     = (MOB_WALK_TYPE)Enum.Parse(typeof(MOB_WALK_TYPE), line_contents[2]);
                float         wander_radius = float.Parse(line_contents[3].ToString());
                Int32.TryParse(line_contents[4].ToString(), out int wanderWait);
                float.TryParse(line_contents[5].ToString(), out float maxHp);
                float.TryParse(line_contents[6].ToString(), out float hpRegen);
                float.TryParse(line_contents[7].ToString(), out float movSpeed);
                float.TryParse(line_contents[8].ToString(), out float attSpeed);
                float.TryParse(line_contents[9].ToString(), out float pAttack);
                float.TryParse(line_contents[10].ToString(), out float mAttack);
                float.TryParse(line_contents[11].ToString(), out float pDef);
                float.TryParse(line_contents[12].ToString(), out float mDef);
                float.TryParse(line_contents[13].ToString(), out float attRange);

                MobStats nStats = new MobStats(walk_type, wander_radius, wanderWait, maxHp, hpRegen, attSpeed, movSpeed, pAttack, mAttack, pDef, mDef, attRange);
                MobData  nData  = new MobData(id, name, nStats);
                mobs[id] = nData;
            }

            Config.Mobs = mobs.ToArray();
        }
        catch (Exception e) { Logger.Syserr(e.Message); return(false); }

        return(true);
    }
예제 #2
0
 public MobStats(MOB_WALK_TYPE _walk_type, float wander_radius, int wanderWait, float _maxHp, float _hpRegen, float _attSpeed, float _movSpeed, float _pAttack, float _mAttack, float _pDefense, float _mDefense, float _attRange)
 {
     this.walkType       = _walk_type;
     this.wanderRadius   = wander_radius;
     this.wanderWaitTime = wanderWait;
     this.maxHp          = _maxHp;
     this.hpRegen        = _hpRegen;
     this.attSpeed       = _attSpeed;
     this.movSpeed       = _movSpeed;
     this.pAttack        = _pAttack;
     this.mAttack        = _mAttack;
     this.pDefense       = _pDefense;
     this.mDefense       = _mDefense;
     this.attRange       = _attRange;
 }