From 9fda8275f8ddaba743ea1ba9d89565ea47195fee Mon Sep 17 00:00:00 2001 From: Asecave Date: Sun, 27 Jun 2021 14:50:36 +0200 Subject: [PATCH] Combat done --- Zoelda/lib/Engine.Alpha.jar | Bin 5763320 -> 5763264 bytes Zoelda/src/main/HUD.java | 1 - Zoelda/src/main/entities/LivingEntity.java | 2 +- Zoelda/src/main/entities/Spider.java | 3 +-- Zoelda/src/main/entities/player/Player.java | 27 ++++++++++++-------- 5 files changed, 18 insertions(+), 15 deletions(-) diff --git a/Zoelda/lib/Engine.Alpha.jar b/Zoelda/lib/Engine.Alpha.jar index 41e6a3110261e04f22c47f74284c77fc005d6dc5..efbc5d0b9ad808a718966d32ad151065c08014da 100644 GIT binary patch delta 2720 zcmZ8i3s6?q5&q@=0?LX=LEuMu2@%mML{U`a;R{6x%74#YO(jYMjj_Hcw5c;usdHj9 z>Xc;WY`PB?LSPA1K{8GYr2@@oQN(htix`c@mCP@gFFj>MB2@w*eN|+{Lx`apxGbBVwh?Wo| zAy&dn39}^3mM}-cTnTX!=1G_@Azs1)2@548NO(g+qJ%{f7N3PAuVh*nI>^QBYBHJf zzuF`gD-;uMHRu17A+}93yE953{8bd2y>+Sk5qi^xT+wbb;3-jKw&;efkI_O2c|soC zV>Rz+$`kyn|Rzfx}Gj&hE%Jy6iYhNLlia$v(-bUZak z(DQPPRz4psD6#^hl<*Ki?^j@ivSfy!a}^k?IK>EhQGt;TCt{5NwD=)<5?)0gWmtls z_pah}<%TL~`XK8l-M+GU#g`hAGKIv77VM@u{hBl6VU&$@Ion~l( zw9#UKOM3DQ_z%~7&SQa8^e_~Z9Vz7a}Peb zi9QY=mKY#8*Yf<;-QYMeP_aid|5OG{5lO|xC; z6PTO;oVOi-4`X|%Qh z-%!%xHLCoH**6>5$@8Te{oH^t!}cvRLZ_u>PSA^ecDc@w?@Hhuk}OhyHv` zqbD8w8ot|sQxyM7jXv70`cYvAr}M1Yuq{yPS`5L9mfXfrCAf=8x4HfGEW~DWDSo`o z?EBq@W})aiOj`X!qZ?nTKD6(SUYMsmWOw*T%J+ugLB4nS3Hieh8ugr1N6?15Oxp8O zqa$}YWs?bY!HeuVnUrpabn9>IsrFm0Qfeos;NXaq)yd2kgOD~|;6`n|s5($@Cwp1s z+y_nimJhcN>(jDyZLfQuc3szwdl;H0S?=+LFHA&AxQAAyIouHZsZfVaGmzeW!jl!! z&e4PKbM)WFAhkbJU(;I}qU6mnGz;b3$H_`~0v>c0qsY07t9dk0SH@9B7dtwl*_7%o ze%=o*)s?9f_kcYdO4gMCI{1KTmba109`JvbQ>jSaULuHk>p5_IHwVsLjbs@iM$#Xv zxTE{Jd8CswkWO{;EG^ICbK%0D2H#{`Xb;<(cOxzC;VNbCMau5M1d-(}p l|Bi5^H;Z14Se|Ztde$)dxec_}AE-0@lQGd`np}Xa{Tn`=1mgez delta 2931 zcmZ8j2~4jJ@=5B zy0oeJ+qxW=y2O|?cr-K~_XsMBK-hNyQBf9c@Wj+s`@c8C!Sv0UbME*3>;3~4z3!lR;zK#$fcaxaca*g;nacCVVu6jsUxRaPKR@<a?N-8uE(bPT7SoO*FOmeX;ZdUHCS)3-UDz^Md)y! zPA731!0BX8133-ibPA_aIi1F7FsC7$hH@Il={uZG=QNzt8Jxb$=}b-|IGx35B&V}E zox|x|PUmqN#c4FBF`UllG?vo^oG#=vj?;Kf6F6POX(FeKIZfj9Jx-T!n#}3a3se}h z0(#7{9+Hb?$Gra2QbGS|xy5K#4LLVtLqX?jxyfM=)HoRHiCq^&1bYn*}-9xIWxE*Vui4jK*isZZFtWrA!n9$j7FnT#Ncv3DAJA}M9l|;mqW6q zgF-cg95q@k;aMT`gt9{d*LvCX^NfcD{EG#~!_rnAwX=8C4EC=e_A;C22p<$NZ{oE= zfNe!Af~1-R_^yb>kC?Jr(3nlZNhXUa#k>hNK47kJt%Nziq+86>G03b+A*Yy)12ZyY zpGAOG7bOEkbTDewJgxA@HVRO9i_LNJ*{Yg|S>{xTs%2xXI#X|>PUBVq7TsnM&cn8= zI*FzX^ClCtw=)BrLa63IWRJZN0@BA+{7FRMZP# zDrF+cZxA5YUv`7iQWi*hngsZ{l+7hOS_PO@#%9tJ&#Z}WGN)xiP6u{Ut@pt)bh2y! z+fv46I}SWom0&|3^RUW2?&9WF+KEcHV$l|ItC*WrWJD419xg(kB>O^g?Og-)qHaa=M+J*G+`{3T7m(?&`uHf-6}l3HDTxALLcC5aK^c zgo~AI9tj8&;XjpZq4UIW)u~`kS%8N@ZLj$UC4~qpZ_3WF7XJvcX#0#z(5M zh({}=V^CQ}39b39Dp{D8lKtj&`3z-b=XMdksm8eyJ_$n$Cnai$E|@PN6ktWIwdmi6~vJx4T}DQ{^sBXKAUJ$By>YMcGSrmb0L%FIko z92yW^Xl!3B?qBY%(KLi;G|oeoxO#dClc-}e39rV&*5P$ISSP}~dSrSZimSt9wjp9IAljN>7)h0)JjaQI~eNHC!VuXX(t2~u0wLL!Grkl%tW zm^xiuxPo&lp3Rt<5=6JM`Q&Jf1RM7l{o!mYCOdht1WOMXec)v)3nRHpR1^S7U6@~L z8|Jr1P^r=Imo_$otdS+CY{TKPnn^J39$P}fK9FGjJ+_q8eJH`HFO324-F^)Hq@k`@-J1ikTm8?u-6`k9KLzNNYZ&5x}u<~->S$P-oK3z#y!LyN|z+K z`Uur$Ync{SKE#X@uGpyK57Fk(4I6r@ps7VRH0KebraLyYOF=)Ds3@Kce4$Q2bcAHN=M6mY~;npWp_%bwiX6_B}zZPUknNw)dGc)Zemt^(GHT zsX~FI7-YD+7K^cDHFLCf=0XofeC46?{>mNGgJUmJ|MgNScZlr8ww?))!P1K-@@%*a z*Lv}`1Vqa)q7P5QlNcF()rU+=f(&2n$L$yQVUE*e8D1S>zRKqG5ZI3{M=g_~{WuF! zGSkBjg{obyQsd!DKSud|PxcfG9QA7zc`MVFP7K5G(~#+P$qi?h z9{+}4jGvtwW$VY$iJNSiVe~I#%~>{C*G(2=P(GuEp0)q5$$Sb~s6qLt8hXOMvB~fg z%L{S}+1URx4$rqKe61LJ4_V@B)H$0BKfz|qSH8Z6o`2e8IAG0LnZcRsvn^{ggHx1& bJ8iS+qvXV4IGZ(^^Z48Mjz%L~W{Ca=Q;AlT diff --git a/Zoelda/src/main/HUD.java b/Zoelda/src/main/HUD.java index 0f51778..19bba77 100644 --- a/Zoelda/src/main/HUD.java +++ b/Zoelda/src/main/HUD.java @@ -1,6 +1,5 @@ package main; -import java.awt.geom.AffineTransform; import java.awt.image.BufferedImage; import java.io.IOException; diff --git a/Zoelda/src/main/entities/LivingEntity.java b/Zoelda/src/main/entities/LivingEntity.java index c370dfb..53b150b 100644 --- a/Zoelda/src/main/entities/LivingEntity.java +++ b/Zoelda/src/main/entities/LivingEntity.java @@ -70,7 +70,7 @@ public abstract class LivingEntity extends Entity { } } - protected float getHealthPoints() { + public float getHP() { return hp; } diff --git a/Zoelda/src/main/entities/Spider.java b/Zoelda/src/main/entities/Spider.java index b817a26..362ba39 100644 --- a/Zoelda/src/main/entities/Spider.java +++ b/Zoelda/src/main/entities/Spider.java @@ -2,7 +2,6 @@ package main.entities; import main.Main; import main.SheetLoader; -import main.entities.player.Player; public class Spider extends LivingEntity { @@ -29,7 +28,7 @@ public class Spider extends LivingEntity { } protected void update() { - Player player = Main.instance.getWorld().getCurrentMap().getPlayer(); +// Player player = Main.instance.getWorld().getCurrentMap().getPlayer(); this.checkTileCollisions(Main.instance.getWorld().getCurrentMap()); super.update(); diff --git a/Zoelda/src/main/entities/player/Player.java b/Zoelda/src/main/entities/player/Player.java index d970723..1150884 100644 --- a/Zoelda/src/main/entities/player/Player.java +++ b/Zoelda/src/main/entities/player/Player.java @@ -11,8 +11,10 @@ import main.entities.LivingEntity; public class Player extends LivingEntity { - private static SheetLoader loader = new SheetLoader("/res/images/player_sprite_sheet.png", 64, 32, new int[] { 5, 8, 7, 6, 2, 5, 4, 7 }); + private static SheetLoader loader = new SheetLoader("/res/images/player_sprite_sheet.png", 64, 32, + new int[] { 5, 8, 7, 6, 2, 5, 4, 7 }); private boolean onlyAttackOnceTrigger; + private float range = 1.2f; // die reichweite der Attacke public Player() { super(loader.getFigur(0), "idle"); @@ -46,8 +48,8 @@ public class Player extends LivingEntity { if (!((actionFigur.aktuellesVerhalten().equals("strike")) && actionFigur.aktuelleFigur().aktuellesBild() < actionFigur.aktuelleFigur().animation().length - 1)) { // Bei diser soll man sich nicht bewegen können aber weiter rutschen - if (!((actionFigur.aktuellesVerhalten().equals("swipe")) - && actionFigur.aktuelleFigur().aktuellesBild() < actionFigur.aktuelleFigur().animation().length - 1)) { + if (!((actionFigur.aktuellesVerhalten().equals("swipe")) && actionFigur.aktuelleFigur() + .aktuellesBild() < actionFigur.aktuelleFigur().animation().length - 1)) { // wasd movement if (Main.instance.tasteGedrueckt(Taste.A)) { @@ -95,18 +97,21 @@ public class Player extends LivingEntity { // auf Kollisionen prüfen checkTileCollisions(Main.instance.getWorld().getCurrentMap()); - if (!onlyAttackOnceTrigger && actionFigur.aktuellesVerhalten().equals("swipe") && actionFigur.aktuelleFigur().aktuellesBild() == 1) { + if (!onlyAttackOnceTrigger && actionFigur.aktuellesVerhalten().equals("swipe") + && actionFigur.aktuelleFigur().aktuellesBild() == 1) { onlyAttackOnceTrigger = true; ArrayList entities = Main.instance.getWorld().getCurrentMap().getEntities(); for (Entity e : entities) { - if (e instanceof LivingEntity && e != this && e.dist(this) <= 1f) { + if (e instanceof LivingEntity && e != this && e.dist(this) <= range) { LivingEntity le = (LivingEntity) e; - Vektor toE = vectorToEntity(le); - toE = toE.normiert(); - if ((toE.x > 0 && !side) || (toE.x <= 0 && side)) { - le.setVelX(le.getVelX() + toE.x * 0.1f); - le.setVelY(le.getVelY() + toE.y * 0.1f); - le.takeDamage(0.1f, this); + if (le.getHP() > 0) { + Vektor toE = vectorToEntity(le); + toE = toE.normiert(); + if ((toE.x > 0 && !side) || (toE.x <= 0 && side)) { + le.setVelX(le.getVelX() + toE.x * 0.1f); + le.setVelY(le.getVelY() + toE.y * 0.1f); + le.takeDamage(0.1f, this); + } } } }