attackerDesc = ae.getDisplayName(); targetDesc = te.getDisplayName(); if (attack instanceof WeaponAttackAction) { addWeapon((WeaponAttackAction)attack); }
        public AttackSprite(AttackAction attack) {            this.attack = attack;                        final Entity ae = game.getEntity(attack.getEntityId());            final Entity te = game.getEntity(attack.getTargetId());            final Point a = getHexLocation(ae.getPosition());		    final Point t = getHexLocation(te.getPosition());				    final double an = (ae.getPosition().radian(te.getPosition()) + (Math.PI * 1.5)) % (Math.PI * 2); // angle		    final double lw = 3; // line width		            // make a polygon		    attackPoly = new Polygon();		    attackPoly.addPoint(a.x + 42 - (int)Math.round(Math.sin(an) * lw), a.y + 36 + (int)Math.round(Math.cos(an) * lw));		    attackPoly.addPoint(a.x + 42 + (int)Math.round(Math.sin(an) * lw), a.y + 36 - (int)Math.round(Math.cos(an) * lw));		    attackPoly.addPoint(t.x + 42 + (int)Math.round(Math.sin(an) * lw), t.y + 36 - (int)Math.round(Math.cos(an) * lw));		    attackPoly.addPoint(t.x + 42 - (int)Math.round(Math.sin(an) * lw), t.y + 36 + (int)Math.round(Math.cos(an) * lw));                        // set bounds            this.bounds = new Rectangle(attackPoly.getBounds());            bounds.setSize(bounds.getSize().width + 1, bounds.getSize().height + 1);                        // move poly to upper right of image            attackPoly.translate(-bounds.getLocation().x, -bounds.getLocation().y);                        // nullify image            this.image = null;        }