コード例 #1
0
ファイル: skills.cs プロジェクト: lizhongwow/SceneTest
        public static void _remark_pl_state(IBaseUnit sprite, IMapUnit pl, bool recalc_att = true)
        {
            if (pl.states == null)
                return;

            if (pl.states.state_par.Count <= 0)
            {
                // 重新计算角色属性
                if (recalc_att)
                {
                    sprite.re_calc_cha_data();
                }

                pl.states = null;
                return;
            }

            pl.states.state = 0;
            pl.states.mov_spd_mul = 1.0;
            pl.states.atk_spd_mul = 1.0;
            pl.states.mp2hp = 0;
            pl.states.dmglnkper = 0;

            //var invisible = 0;

            foreach (var val in pl.states.state_par)
            {
                var i = 0;
                var mp2hp = 0;
                //        if (("attadj" in val) && ("mp2hp" in val.attadj) )
                //{
                //            mp2hp = val.attadj.mp2hp;
                //        }
                //for (; i < val.desc.s_states.len(); ++i)
                //{
                //    pl.states.state = (pl.states.state | val.desc.s_states[i].tp);

                //    //if((val.desc.s_states[i].tp&pl_state_type.PST_MOVE_SPEED_MUL)==pl_state_type.PST_MOVE_SPEED_MUL)
                //    //{
                //    //    pl.states.mov_spd_mul *= val.desc.s_states[i].par.tofloat() * val.par / 100000.0;
                //    //}

                //    //if((val.desc.s_states[i].tp&pl_state_type.PST_ATK_SPEED_MUL)==pl_state_type.PST_ATK_SPEED_MUL)
                //    //{
                //    //    pl.states.atk_spd_mul *= val.desc.s_states[i].par.tofloat() * val.par / 100000.0;
                //    //}

                //    if ((val.desc.s_states[i].tp & pl_state_type.PST_MP2HP) == pl_state_type.PST_MP2HP)
                //    {
                //        if (mp2hp > 0)
                //        {
                //            pl.states.mp2hp += mp2hp;
                //        }
                //        else
                //        {
                //            pl.states.mp2hp += (val.desc.s_states[i].par * val.par / 1000);
                //        }
                //    }
                //    if ((val.desc.s_states[i].tp & pl_state_type.PST_DMGLNK_M) == pl_state_type.PST_DMGLNK_M)
                //    {
                //        pl.states.dmglnkper += (val.desc.s_states[i].par * val.par / 1000);
                //    }

                //    // TO DO : speed add att
                //}

                //if("att" in val.desc)
                //{
                //    if("invisible" in val.desc.att)
                //    {
                //        // 隐身状态
                //        if(val.desc.att.invisible > invisible)
                //        {
                //            invisible = val.desc.att.invisible;
                //        }
                //    }

                //    if(!recalc_att)
                //    {
                //        foreach(key,att in val.desc.att)
                //        {
                //            if(key!="invisible") 
                //            {
                //                // 有需计算属性
                //                recalc_att = true;
                //                break;
                //            }
                //        }
                //    }
                //}
            }

            //if(recalc_att)
            //{
            // 有att调整字段,需要重新计算角色属性
            sprite.re_calc_cha_data();
            //}

            //sprite.visible_change(invisible);
        }