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); }