/** * Heals a Hero's health OR magic OR both. If player is lucky enough they get boost to both stats. * Otherwise one or the other. */ public StringBuilder triggerEffectGUI() { StringBuilder sb = new StringBuilder(); Player p = getActivator(); Hero beingHealed = p.getCharacter(); randomize(); Random rand = new Random(System.currentTimeMillis()); int luck = rand.nextInt(100) + 1 + beingHealed.getLuck(); if (luck > 75) { beingHealed.setCurrentHP(beingHealed.getCurrentHP() + statChange); beingHealed.setCurrentMP(beingHealed.getCurrentMP() + statChange2); sb.append( p.getCustomName() + " has gained " + statChange + " health and " + statChange2 + " mana.\n"); } else if (rand.nextBoolean()) { beingHealed.setCurrentHP(beingHealed.getCurrentHP() + statChange); sb.append(p.getCustomName() + " has gained " + statChange + " health.\n"); } else { beingHealed.setCurrentMP(beingHealed.getCurrentMP() + statChange); sb.append(p.getCustomName() + " has gained " + statChange + " mana.\n"); } return sb; }
/** * Takes in Hero Class as a parameter. Change current player's current HP * * @param hero */ @Override public void triggerEffect(Hero hero) { int duration = this.getDuration(); if (duration > 0) { int curHP = hero.getCurrentHP(); hero.setCurrentHP(curHP + this.getChange()); if (curHP <= 0) { hero.makeGhost(); } this.setDuration(--duration); } }
/** * Heals a Hero's health OR magic OR both. If player is lucky enough they get boost to both stats. * Otherwise one or the other. */ @Override public void triggerEffect() { Player p = getActivator(); Hero beingHealed = p.getCharacter(); randomize(); Random rand = new Random(System.currentTimeMillis()); int luck = rand.nextInt(100) + 1 + beingHealed.getLuck(); if (luck > 75) { beingHealed.setCurrentHP(beingHealed.getCurrentHP() + statChange); beingHealed.setCurrentMP(beingHealed.getCurrentMP() + statChange2); } else if (rand.nextBoolean()) { beingHealed.setCurrentHP(beingHealed.getCurrentHP() + statChange); } else { beingHealed.setCurrentMP(beingHealed.getCurrentMP() + statChange); } }
/** * Takes in Player class as a parameter. Fully restore current player's HP(MP if Ghost). * * @param affected */ @Override public void triggerEffect(Player affected) { Hero hero = affected.getCharacter(); if (hero.isGhost() == false) { hero.setCurrentHP(hero.getMaxHP()); } else if (hero.isGhost() == true) { hero.setCurrentMP(hero.getMaxMP()); } this.setMessage("You were kissed by a magic fairy. Restore HP to max."); }
@Test public void testPoorVictimWontHaveNegativeGold() { Hero thief = player1.getCharacter(); Hero victim = player2.getCharacter(); int initGold = thief.getGold(); victim.setGold(1); card.triggerEffect(player1, player2); assertEquals(initGold + 1, thief.getGold()); assertEquals(0, victim.getGold()); }
@Test public void testStealGold() { Hero thief = player1.getCharacter(); Hero victim = player2.getCharacter(); int thiefInitGold = thief.getGold(); int victimInitGold = victim.getGold(); card.triggerEffect(player1, player2); int diff = thief.getGold() - thiefInitGold; String msg = card.getMessage(); msg = msg.replace( "Victim has just invested in Thief's ponzi scheme. As a result, Thief steals ", ""); msg = msg.replace(" from Victim", ""); assertEquals(diff, Integer.parseInt(msg)); assertEquals(thiefInitGold + Integer.parseInt(msg), thief.getGold()); assertEquals(Integer.parseInt(msg), victimInitGold - victim.getGold()); }