package com.weem.epicinventor.actor.oobaboo; import com.weem.epicinventor.*; import com.weem.epicinventor.actor.*; import com.weem.epicinventor.ai.*; import com.weem.epicinventor.armor.*; import com.weem.epicinventor.inventory.*; import com.weem.epicinventor.network.*; import com.weem.epicinventor.utility.*; import com.weem.epicinventor.weapon.*; import java.io.*; import java.awt.*; import java.awt.image.*; import java.awt.geom.AffineTransform; import java.awt.geom.Arc2D; import java.util.*; public class OobabooWarrior extends Oobaboo implements Serializable { private static final long serialVersionUID = 10000L; public OobabooWarrior(PlayerManager pm, Player p, Registry rg, String im, int x) { super(pm, p, rg, im, x); disappearTime = registry.currentTime + (60 * 1000 * 1); ai = new AI(registry, this); ai.clearGoals(); ai.setPlayer(player.getId()); ai.addGoal(AI.GoalType.OOBABOO_WARRIOR, null, 1); ai.activate(); } @Override public void meleeAttack() { int kbX = 20; int kbY = 5; int damage = (player.getAttackBonus() * 2); int maxHits = 2; int weaponSpeed = 600; isSwinging = true; actionMode = ActionMode.ATTACKING; attackRefreshTimerStart = System.currentTimeMillis(); attackRefreshTimerEnd = System.currentTimeMillis() + weaponSpeed; attackArc = getAttackArc(); if (facing == Facing.LEFT) { kbX = -1 * kbX; } playerManager.attackDamageAndKnockBack(this, attackArc, null, damage, kbX, kbY, maxHits, ""); } @Override protected void updateImage() { if (actionMode == ActionMode.ATTACKING) { if (currentAnimationFrame == 0 || !image.equals("Oobaboo/Warrior/Swinging")) { loopImage("Oobaboo/Warrior/Swinging", 0.10f); } } else if (vertMoveMode == VertMoveMode.FALLING && fallSize > startJumpSize) { loopImage("Oobaboo/Warrior/Falling"); } else if (vertMoveMode == VertMoveMode.JUMPING) { setImage("Oobaboo/Warrior/Jumping"); } else { if (!isTryingToMove) { setImage("Oobaboo/Warrior/Standing"); } else { loopImage("Oobaboo/Warrior/Walking", 0.10f); } } } private void readObject(ObjectInputStream aInputStream) throws Exception { aInputStream.defaultReadObject(); } private void writeObject(ObjectOutputStream aOutputStream) throws Exception { aOutputStream.defaultWriteObject(); } }