/** * People killed another one. * * <p> * * <ul> * <li>display message * <li>update scores * <li>drop Zildo's current weapon * <li>respawn him * </ul> * * @param p_zildo * @param p_shooter */ public void kill(PersoZildo p_zildo, Perso p_shooter) { ClientState clKilled = Server.getClientFromZildo(p_zildo); ClientState clShooter = null; if (p_shooter != null && p_shooter.isZildo()) { clShooter = Server.getClientFromZildo((PersoZildo) p_shooter); } displayDeathMessage(clKilled, clShooter); // Update scores clKilled.nDied++; if (clShooter != null) { clShooter.nKill++; } // Drop Zildo's weapon at his death point Item weapon = p_zildo.getWeapon(); ItemKind k = weapon == null ? null : weapon.kind; if (k != null && k != ItemKind.SWORD) { EngineZildo.spriteManagement.spawnSprite( k.representation, (int) p_zildo.getX(), (int) p_zildo.getY(), false, Reverse.NOTHING, true); } // Steal money from the dead Zildo if (p_shooter != null && p_shooter.isZildo()) { int money = p_zildo.getMoney() / 2; p_zildo.setMoney(money); p_shooter.setMoney(p_shooter.getMoney() + money); } // Respawn Zildo EngineZildo.respawnClient(p_zildo); needToBroadcast = true; }