📄 demagetest.java
字号:
package org.su.demo.Creature.test;
import org.su.demo.Creature.Attack.Attack;
import org.su.demo.Creature.Attack.Defense;
import org.su.demo.Creature.NPC.Role;
import org.su.demo.Creature.demage.DemagePacket;
import org.su.demo.NPC.skills.AttackSkills;
import org.su.demo.NPC.skills.MagicSkill;
import junit.framework.TestCase;
/*
* 测试类 测试一个攻击
*/
public class DemageTest extends TestCase {
private Role role;
private AttackSkills attackSkills;
DemagePacket demagePacket;
Attack attack;
Defense defense;
Defense defense1;
Defense defense2;
Defense defense3;
// 初始化
public void setUp() throws Exception {
role = new Role("崔特特", 90, 80, 0,false);
// 技能伤害 20
attackSkills = new MagicSkill("魔法攻击技能", 20);
// 物理伤害 10
demagePacket = new DemagePacket(10, attackSkills);
attack = new Attack(demagePacket);
defense = new Defense();
// defense1 = new Defense();
// defense2 = new Defense();
// defense3 = new Defense();
System.out.println("===============测试开始============");
}
public void tearDown() throws Exception {
System.out.println("===============测试结束============");
}
/**
* 目的:测试一个攻击场景
* 怪物攻击玩家
*/
public void testRoleAttack() {
//打印玩家资料
System.out.println(role.toString());
//把一个观察者(这里是---被攻击者---玩家)注册到主题(这里是---攻击者---怪物)中
attack.registerObserver(defense);
//通知观察者
attack.notifyObserver();
//观察者打印
defense.disPlay();
//调用玩家掉血的行为--受到普通攻击是10
int hp1 = role.lostHpByATK(defense.getATK(), defense.getMATK(), role.getHp());
role.setHp(hp1);
//调用玩家掉血的行为--受到魔法攻击是20
int hp2 = role.lostHpByMATK(defense.getATK(), defense.getMATK(), role.getHp());
role.setHp(hp2);
//打印玩家剩余血量
System.out.println("剩余血量为:" + role.getHp());
//判断是否死亡,可以提取为role的行为,例如WOW中的战场死亡或者野外死亡副本死亡等等
if(role.getHp() == 0)
{
role.setDead(true);
}
//测试此时玩家血量是否剩余60
assertEquals(60, role.getHp());
}
// /**
// * 目的:测试角色初始化,技能初始化以及攻击三只怪物
// * */
// public void testRoleAttackThree(){
// System.out.println(role.toString());
// attack.registerObserver(defense1); attack.registerObserver(defense2);
// attack.registerObserver(defense3); attack.notifyObserver();
// defense1.disPlay();
// defense2.disPlay();
// defense3.disPlay();
// }
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -