⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 demagetest.java

📁 JAVA 工厂方法
💻 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 + -