From b763c4117be1ec4fc52941a699f6e1c8b62a90c7 Mon Sep 17 00:00:00 2001 From: Adrian400811 Date: Sun, 9 Jun 2024 19:03:21 -0400 Subject: [PATCH] Added BlueSpider and RedSpider Added healing for RedSpider --- BlueSpider.java | 18 ++++++++++++++++++ RedSpider.java | 27 +++++++++++++++++++++++++++ Spider.java | 9 ++++----- 3 files changed, 49 insertions(+), 5 deletions(-) create mode 100755 BlueSpider.java create mode 100755 RedSpider.java diff --git a/BlueSpider.java b/BlueSpider.java new file mode 100755 index 0000000..c51cc62 --- /dev/null +++ b/BlueSpider.java @@ -0,0 +1,18 @@ +import greenfoot.World; + +public class BlueSpider extends Spider { + private World w; + + public BlueSpider() { + super(); + } + + public void addedToWorld(World w) { + this.w = w; + } + + public void act() { + super.act(); + } + +} diff --git a/RedSpider.java b/RedSpider.java new file mode 100755 index 0000000..d0ac6a3 --- /dev/null +++ b/RedSpider.java @@ -0,0 +1,27 @@ +import greenfoot.World; + +import java.util.Objects; + +public class RedSpider extends Spider { + private World w; + + public RedSpider() { + super(); + healPlayer(); + } + + public void addedToWorld(World w) { + this.w = w; + } + + private void healPlayer() { + if (w == null) { + return; + } + Player topL = (Player) getOneObjectAtOffset(-(getImage().getWidth() / 2), getImage().getHeight() / 2, Player.class); + Player topR = (Player) getOneObjectAtOffset(getImage().getWidth() / 2, getImage().getHeight() / 2, Player.class); + if (topL != null || topR != null) { + Objects.requireNonNullElse(topL, topR).changeHP(+1); + } + } +} diff --git a/Spider.java b/Spider.java index c50564d..8fe2bd4 100755 --- a/Spider.java +++ b/Spider.java @@ -4,10 +4,9 @@ public class Spider extends Mobs { private final int hp; private final double speed; private final int dmg; - public World w; - long startTime; - long elapsedTime; - boolean oob = false; + private World w; + private long startTime; + private boolean oob = false; public Spider() { hp = 2; @@ -35,7 +34,7 @@ public void timeout() { oob = false; } if (oob) { - elapsedTime = System.currentTimeMillis() - startTime; + long elapsedTime = System.currentTimeMillis() - startTime; if (elapsedTime > 10 * 1000) { w.removeObject(this); }