public Attr(string name = "", attrType type = attrType.attr, bool numerical = false, string path = "") { this.name = name; this.type = type; this.numerical = numerical; this.path = path; }
/* 返回角色属性 */ public static int getAttr(attrType type) { switch (type) { case attrType.HP: return(HP); break; case attrType.maxHP: return(maxHP); break; case attrType.MP: return(MP); break; case attrType.maxMP: return(maxMP); break; case attrType.atk: return(atk); break; case attrType.aSpeed: return(aSpeed); break; case attrType.mSpeed: return(mSpeed); break; default: return(-1); break; } }
/* 设置角色属性 */ public static void setAttr(int value, attrType type) { switch (type) { case attrType.HP: HP = value; break; case attrType.maxHP: maxHP = value; break; case attrType.MP: MP = value; break; case attrType.maxMP: maxMP = value; break; case attrType.atk: atk = value; break; case attrType.aSpeed: aSpeed = value; break; case attrType.mSpeed: mSpeed = value; break; default: break; } }
public static void addAttr(int num, attrType type) { int result; switch (type) { case attrType.HP: result = HP + num; if (result > maxHP) // 生命值超过最大生命 { HP = maxHP; } else { HP = result; } break; case attrType.maxHP: maxHP = maxHP + num; addAttr(num, attrType.HP); break; case attrType.MP: result = MP + num; if (result > maxMP) // 魔法值超过最大魔法 { MP = maxMP; } else { MP = result; } break; case attrType.maxMP: maxMP = maxMP + num; addAttr(num, attrType.MP); break; case attrType.atk: result = atk + num; if (result > 300) // 攻击力超过阈值 { atk = 300; } else { atk = result; } break; case attrType.aSpeed: result = aSpeed + num; if (result > 50) // 攻击速度超过阈值 { aSpeed = 50; } else { aSpeed = result; } break; case attrType.mSpeed: result = mSpeed + num; if (result > 16) // 移动速度超过阈值 { mSpeed = 16; } else { mSpeed = result; } break; } }
public static void reduceAttr(int num, attrType type) { int result; switch (type) { case attrType.HP: result = HP - num; if (result <= 0) // 生命值降到0以下 { HP = 0; death(); // 触发死亡事件 } else { HP = result; } break; case attrType.maxHP: result = maxHP - num; if (result <= 0) // 最大生命值降到0以下 { maxHP = 0; death(); // 触发死亡事件 } else { maxHP = result; if (HP > maxHP) // 当前生命值超过最大生命值 { HP = maxHP; } } break; case attrType.MP: result = MP - num; if (result <= 0) // 魔法值降到0以下 { MP = 0; } else { MP = result; } break; case attrType.maxMP: result = maxMP - num; if (result <= 0) // 最大魔法值降到0以下 { maxMP = 0; } else { maxMP = result; if (MP > maxMP) // 当前魔法值超过最大魔法值 { MP = maxMP; } } break; case attrType.atk: result = atk - num; if (result <= 30) // 攻击力降到阈值以下 { atk = 30; } else { atk = result; } break; case attrType.aSpeed: result = aSpeed - num; if (result <= 5) // 攻击速度降到阈值以下 { aSpeed = 5; } else { aSpeed = result; } break; case attrType.mSpeed: result = mSpeed - num; if (result <= 0) // 移动速度降到阈值以下 { mSpeed = 0; } else { mSpeed = result; } break; } }
public static void addAttr(int num, attrType type) { int result; switch (type) { case attrType.HP: result = HP + num; if (result <= 0) // 生命值降到0以下 { HP = 0; death(); // 触发死亡事件 } else { HP = result; } break; case attrType.maxHP: result = maxHP + num; if (result <= 0) // 最大生命值降到0以下 { maxHP = 0; death(); // 触发死亡事件 } else { maxHP = result; if (HP > maxHP) // 当前生命值超过最大生命值 { HP = maxHP; } } break; case attrType.MP: result = MP + num; if (result <= 0) // 魔法值降到0以下 { MP = 0; } else { MP = result; } break; case attrType.maxMP: result = maxMP + num; if (result <= 0) // 最大魔法值降到0以下 { maxMP = 0; } else { maxMP = result; if (MP > maxMP) // 当前魔法值超过最大魔法值 { MP = maxMP; } } break; case attrType.atk: result = atk + num; if (atk > 300) // 攻击力超过阈值 { atk = 300; } else { atk = result; } break; case attrType.aSpeed: result = aSpeed + num; if (aSpeed > 50) // 攻击速度超过阈值 { aSpeed = 50; } else { aSpeed = result; } break; case attrType.mSpeed: result = mSpeed + num; if (mSpeed > 16) // 移动速度超过阈值 { mSpeed = 16; } else { mSpeed = result; } break; } }