From 3c2f19856709a768958d7ae8c68c5572a0e00caf Mon Sep 17 00:00:00 2001
From: Ed <96445749+TheShuEd@users.noreply.github.com>
Date: Thu, 4 Apr 2024 00:56:54 +0300
Subject: [PATCH] Setup melee. Add Zweichender (#34)
* Setup melee. Add Zweichender
* Update base.yml
* Update base.yml
---
.../Weapons/Melee/MeleeWeaponComponent.cs | 5 ++
.../Weapons/Melee/SharedMeleeWeaponSystem.cs | 5 ++
.../Entities/Objects/Weapons/Melee/base.yml | 57 ++++++++++++++++++
.../Objects/Weapons/Melee/twoHandedSword.yml | 17 ++++++
.../Entities/Objects/Weapons/Ranged/base.yml | 14 +++++
.../Mobs/Species/Human/parts.rsi/full.png | Bin 700 -> 639 bytes
.../zweichhender.rsi/equipped-BACKPACK.png | Bin 0 -> 1237 bytes
.../Weapons/Melee/zweichhender.rsi/icon.png | Bin 0 -> 780 bytes
.../Melee/zweichhender.rsi/inhand-left.png | Bin 0 -> 802 bytes
.../Melee/zweichhender.rsi/inhand-right.png | Bin 0 -> 785 bytes
.../Weapons/Melee/zweichhender.rsi/meta.json | 34 +++++++++++
.../zweichhender.rsi/wielded-inhand-left.png | Bin 0 -> 586 bytes
.../zweichhender.rsi/wielded-inhand-right.png | Bin 0 -> 598 bytes
13 files changed, 132 insertions(+)
create mode 100644 Resources/Prototypes/_CP14/Entities/Objects/Weapons/Melee/base.yml
create mode 100644 Resources/Prototypes/_CP14/Entities/Objects/Weapons/Melee/twoHandedSword.yml
create mode 100644 Resources/Prototypes/_CP14/Entities/Objects/Weapons/Ranged/base.yml
create mode 100644 Resources/Textures/CrystallPunk/Objects/Weapons/Melee/zweichhender.rsi/equipped-BACKPACK.png
create mode 100644 Resources/Textures/CrystallPunk/Objects/Weapons/Melee/zweichhender.rsi/icon.png
create mode 100644 Resources/Textures/CrystallPunk/Objects/Weapons/Melee/zweichhender.rsi/inhand-left.png
create mode 100644 Resources/Textures/CrystallPunk/Objects/Weapons/Melee/zweichhender.rsi/inhand-right.png
create mode 100644 Resources/Textures/CrystallPunk/Objects/Weapons/Melee/zweichhender.rsi/meta.json
create mode 100644 Resources/Textures/CrystallPunk/Objects/Weapons/Melee/zweichhender.rsi/wielded-inhand-left.png
create mode 100644 Resources/Textures/CrystallPunk/Objects/Weapons/Melee/zweichhender.rsi/wielded-inhand-right.png
diff --git a/Content.Shared/Weapons/Melee/MeleeWeaponComponent.cs b/Content.Shared/Weapons/Melee/MeleeWeaponComponent.cs
index 85d2e4675f..2027c2d2c6 100644
--- a/Content.Shared/Weapons/Melee/MeleeWeaponComponent.cs
+++ b/Content.Shared/Weapons/Melee/MeleeWeaponComponent.cs
@@ -113,6 +113,11 @@ public sealed partial class MeleeWeaponComponent : Component
[ViewVariables(VVAccess.ReadWrite), DataField]
public bool SwingLeft;
+ ///
+ /// CrystallPunk Melee improvment. Allows each attack to take turns being either left or right
+ ///
+ [DataField]
+ public bool CPSwingBeverage = true;
// Sounds
diff --git a/Content.Shared/Weapons/Melee/SharedMeleeWeaponSystem.cs b/Content.Shared/Weapons/Melee/SharedMeleeWeaponSystem.cs
index e59b4a13fe..8fe0dc6e59 100644
--- a/Content.Shared/Weapons/Melee/SharedMeleeWeaponSystem.cs
+++ b/Content.Shared/Weapons/Melee/SharedMeleeWeaponSystem.cs
@@ -428,6 +428,11 @@ public abstract class SharedMeleeWeaponSystem : EntitySystem
var attackEv = new MeleeAttackEvent(weaponUid);
RaiseLocalEvent(user, ref attackEv);
+ //CrystallPun melee improvment
+ if (weapon.CPSwingBeverage)
+ weapon.SwingLeft = !weapon.SwingLeft;
+ //CrystallPun melee improvment end
+
weapon.Attacking = true;
return true;
}
diff --git a/Resources/Prototypes/_CP14/Entities/Objects/Weapons/Melee/base.yml b/Resources/Prototypes/_CP14/Entities/Objects/Weapons/Melee/base.yml
new file mode 100644
index 0000000000..01e9806cef
--- /dev/null
+++ b/Resources/Prototypes/_CP14/Entities/Objects/Weapons/Melee/base.yml
@@ -0,0 +1,57 @@
+# Simple melee weapons
+
+# Battle Staff
+# Mace
+# Stick
+# Dagger
+# Spear
+# Light Hammer
+# Throwing spear
+# Hand axe
+# Sickle
+
+# Military melee weapons
+
+# Halberd
+# Battle pick
+# Warhammer
+# Battle axe
+# Glaive
+
+- type: entity
+ name: двуручный меч
+ abstract: true
+ parent: BaseItem
+ id: CPBaseTwoHandedSword
+ description: Мощное оружие, требующее огромной силы и умения для эффективного использования.
+ components:
+ - type: Sharp
+ - type: MeleeWeapon
+ attackRate: 0.75
+ damage:
+ types:
+ Slash: 10
+ Structural: 5
+ soundHit:
+ collection: MetalThud
+ - type: Wieldable
+ - type: IncreaseDamageOnWield
+ damage:
+ types:
+ Slash: 30
+ Structural: 5
+ - type: Item
+ size: Ginormous
+
+# Long spear
+# Long sword
+# Whip
+# Short sword
+# Hammer
+# Morgenstern
+# Pika
+# Rapier
+# Axe
+# Scimitar
+# Trident
+# Chain
\ No newline at end of file
diff --git a/Resources/Prototypes/_CP14/Entities/Objects/Weapons/Melee/twoHandedSword.yml b/Resources/Prototypes/_CP14/Entities/Objects/Weapons/Melee/twoHandedSword.yml
new file mode 100644
index 0000000000..4d50550d63
--- /dev/null
+++ b/Resources/Prototypes/_CP14/Entities/Objects/Weapons/Melee/twoHandedSword.yml
@@ -0,0 +1,17 @@
+
+- type: entity
+ name: цвайхендер
+ parent: CPBaseTwoHandedSword
+ id: CPZweichender
+ components:
+ - type: MeleeWeapon
+ wideAnimationRotation: 225
+ - type: Sprite
+ sprite: CrystallPunk/Objects/Weapons/Melee/zweichhender.rsi
+ state: icon
+ - type: Clothing
+ sprite: CrystallPunk/Objects/Weapons/Melee/zweichhender.rsi
+ quickEquip: false
+ slots:
+ - back
+ #TODO двуручный хват требует перчаток чтобы не получать урона самому
\ No newline at end of file
diff --git a/Resources/Prototypes/_CP14/Entities/Objects/Weapons/Ranged/base.yml b/Resources/Prototypes/_CP14/Entities/Objects/Weapons/Ranged/base.yml
new file mode 100644
index 0000000000..fd817a5aa7
--- /dev/null
+++ b/Resources/Prototypes/_CP14/Entities/Objects/Weapons/Ranged/base.yml
@@ -0,0 +1,14 @@
+# Simple ranged weapon
+
+# Crossbow
+# Dart
+# Short bow
+# Slingshot
+
+# Military ranged weapon
+
+# Handheld crossbow
+# Heavy Crossbow
+# Longbow
+# Blowpipe
+# Net
\ No newline at end of file
diff --git a/Resources/Textures/CrystallPunk/Mobs/Species/Human/parts.rsi/full.png b/Resources/Textures/CrystallPunk/Mobs/Species/Human/parts.rsi/full.png
index 27ed4871786d8cb6febe44f9d627fdc5a131df2a..a0e572d045c74397a1a720af8b5b8a634cd3d2a7 100644
GIT binary patch
delta 601
zcmV-f0;c`E1^)z)F@HHpL_t(oh0RwnXxl&(eNF?V6hSD(ZI(zugTd}(XrUB3WX+(^
z$(XL0vK10MXlTGgNT6G$tRZwVbs%eoEQJO<$p#Gqc{0^1N|w;eVE@ZWK1+A9L-Llh
z?*F^@{=d6_XW)@hDl+J7Z=0q2nujNa=F%Q?wztjdH4~O?@PEEAh|%j03yIJgAS0hw
z#FCCP04aG^|3U@SYvx?`xdn)5A6+KeqIjm`yuys{Yj0m;<<)b1{o0t%loNgc-pxJ*>!|0tCACGeL|LoXa~Sl
zMdUh(A_
zB^R5{n6`jle}0!5-@xd%>o{y2wTag81@}AH*@R^qc(+hNcyIxa`X-!3R+Jo2EJPw?sV*s{>`xYV-oz2*f#XzM00000NkvXXu0mjfRJI^e
delta 663
zcmV;I0%-mJ1iS^1F@JVRL_t(og~e9CYui8=eQs--#kDDw(++Z6Ol0F^a_Lmml*F=6@1_&1-g0tGARyNG0&d
z#}#o$CKv#hJjy;%0j0T_vHW8TU{U^Z5E@l+S0*?`5}z`UA0hSdK3=|f3IM_AH9Od@
zoZ_eJewLY2ssiO|HS&Os^79~^U|SX`=F@1nKHj}~e(f4=S586wGD7Z&l2g)Bk8BXE
z9{>>*F*1lHr+@IeBq8uBA|gVl0(5e(*+Dj!7<%VN`FV&ugmm>3wR$Tc8YE`@KzB=Q
z%ewYvNC^P?tFP=iXt;jJHW<@zeN^@wZj7=3N=|z`Z~s~Q^7>|sikO%H%}5GQC>t*%
zz%1z4-&!S3+YjwCTa8-11*h#}e`}SP1%0vtyk-aNq<@r{y&bIBVcWz*eUs=HJ$#LxMdl33E)i;rhtt642wRkX?_bkj*86R()dvD2BZSDiC^(f$qz=usF-z0%}`W
zoCRPB|BMI=uq}(w=5qAw92aMoA%Csj3VK1WV+xB9-U7Nxv!FvWl0lbq+I~RJ#)(3x
x0)ONG@Nwf?$VQt@ZzLOxPs>b6iMUn#2UT|+&Ja_qZ6^Q#002ovPDHLkV1l&OI2!-}
diff --git a/Resources/Textures/CrystallPunk/Objects/Weapons/Melee/zweichhender.rsi/equipped-BACKPACK.png b/Resources/Textures/CrystallPunk/Objects/Weapons/Melee/zweichhender.rsi/equipped-BACKPACK.png
new file mode 100644
index 0000000000000000000000000000000000000000..73e424ea6540a182faecc751089c0cef6cf1434c
GIT binary patch
literal 1237
zcmV;`1SPx(bxA})RCt{2nonrkRvgE_Z*=LOVX&2fyHYn~8?=zjxQC{3Iv1LlHn1`nEZb;s
zPuZp5xfEx|Ko8xe(4NK^yA4*_wX|$(#f)?Zcfnc0pg0QjP*%3mtuSf?cI{0H{B{^J
zlB+*YiWF&yKA?lGr{DX%uYSMZd(smS5fKp)5fNcTsaU4-a~B8zh$s*rh{*8)0O#i}
zP@ynm>-09OlMP8iLy|Bxk)!GS2qPl2ItnU3{)~6udb8W^#`izzuA3Y`3;>Aj>f;_{
zFN`tW@5R{^0ATduBU3xm`4IrX)I^Q|K#0d}`(}0xvY9mX$6mtDzHRt=zRFYq0GNv4
zr2ux3#~ACjna+bL>*S!Jamsp(C$7cV0Vatr#1{>C+$T
z!dyG}OZf)lNn2ZmdW~o!K*cB$CdUu^9sy@Rnx%#$;q}2mhzk{H2M_$0F1@MrTt7~o
zGZFwW7GdgS&d$7H9{_&}tgf!m7oUF#A(24k+iSQn_X-;?-NXIgpXltE!6iVi5hCI$
zN_L%V?U`Ns*OO~_Ir*OMT&trH0K|6nF6HB_VLXVy8mm{h3-jNmZ?@`b!a$YEOn9^X9S-cujY4t{9p
zjqYI88ON$7dB#T80PTO;oY&R_BEt3W?z-~9HUiwz>L{MtGrRMnxv_QSsI36KirS@w
zIz@Sj+2Fmv@?l8J;%o~0#)d50FvcK?bpW8@;j|}?sy6)?Jm4S&w8e!nW_SRAI`C#&
z=8gm-TWbEQb_QNOz*-#zX2(Ek4{vwQa9i9&u})4zFrwL(NfhhBE=JZ<-PIMEn|{@5
z-)zfnF6YMa!w?Ys;)wSq@c8N5H28mE%L`yT4F(LY-zF0;;saU3lB;k)+le+Du
zASe~fBqS1;&X2IK=9fIPYZ(DTA^{;D$JtNYq<(x5Bo7`w#FabC@X{Ac0gksnV@r2`
zKu2DKf*pa0P%H1n2ivc*2P;cBnah%wB3LF>t-KciaBg1cekJlE{$^M1EPK+q7PY_`
zD0s_oSHbaKBE?W*-_0z
zU-N8d%61{7erPcH_WLLv{FBS58+h(kLy`ahpB(?kH$QZ!N~+4QUe1JK%iPPoNv@@^
zs{CezOMo-U3R}IL@!OX`;1Xc;;v>Wdl86r^{q|?Wv8+5{eHe;1Mm%KG3BVXbtD_Ka
zlx{i!M6pi4{d%9fy(Px%tVu*cR9J=WmO)4qQ5eU6Pf|n>cNP(fE=!9AX)L013nGI+i4LKMx)^nhI&>;f
z6zbHW=oA%E&=Pg(uuJDaj2SGEP0}(VI=Q&BArU-+*I}9I&Cbs5%(PyjKRgCzKHl&D
zz4yNF4g43Nl-l)CC=@6Z3IIqcRjIV90QST&YTI_A1jok40GOPdL`tbPHa_rm^Bb`Y
z6pO`3apiKk;rn{{#OVnU%RnoQA9w-4v+^E18AD2Z^>P_Wm)8MIl8*Kyx5M&vxb18!29?13xHfMM?RnT
z#V6W=M&MR(DP;f-305EpyqO{y*nGUdrKu!vh_MCj&fHa`DzI%k)Ic-1X_{D;1=J3p
zE4>Q-st>fv+=aVZSy>6p5$h1@w^%)V%h`&&?7AYafD0TNIwBf188@yz>$VtJTU(>2
zr@JLQi2?=|=5DHNCd0Y&XN6MA*Mi%bxvLHUA%r(7jzh(9c={->gb`{a8XP=C
zBlyzm#fBwhnr3L_1Pti9bN7}2JQJnTY5;B+eE<|+7FBP$H&N!U0{eGmr1soCd{JdH
z834{qpYomd0b@V`7)BrKpFaxs?zb$fS-%_mf!l9u&naV_Pe3}A;{LrSoIG*d
zD>dyID_i&9P*>AF;Cy*crCJ5RUVaz&u4kU~5H>8Ksqv%gr~JkC&JO^x!zSreinL)c
zw{TrZDMKgJ+pI1rC7qp}HK_Q54H(ejODn71_sf^ADuA?MFgt%OwD$GMb?Ntw9^>1B
zFgVnzqf)I>ahx!A02D<6V1D+7DlNVu4DRar1(TF0000<
KMNUMnLSTYZDqy<+
literal 0
HcmV?d00001
diff --git a/Resources/Textures/CrystallPunk/Objects/Weapons/Melee/zweichhender.rsi/inhand-left.png b/Resources/Textures/CrystallPunk/Objects/Weapons/Melee/zweichhender.rsi/inhand-left.png
new file mode 100644
index 0000000000000000000000000000000000000000..65a012c1e13cd9c3d3f9c78715159ce8ccc991d0
GIT binary patch
literal 802
zcmV+-1Ks?IP)Px%!bwCyRCt{2nz3u!KorKmD%(=3xT9S1qOXmIHKo-{dy^nYA
z&Uz1E7=~e(nY0>BTC@#eaR$SQ&q21|2s5dXH{cA0nGnHPT^V0HgCQAtL(Rmt-KMOF
z0F0cs?Y3Hb(;xy7!5IvFheV6>l0}O^L^H?H$FGs*3zY-h6bh#3UR`7+Cj@bGo`;;C
zgDyrQ7^^EnwNVnH6l>gSG|9UhRBx9-;qEuQ+n`qbL{Paj+>TuzZ{qrRGf;r2M9u+j
ztc{XzdJc5u1R+MN>)ZaV(9a|u1%Q7f?Cd;JB8WE%R4;>A5g^yRUnJynxj0kLjSynu
zG^m~WNuBB^bprlHLbX!Uk_Y_m#mxcAX*HTk1=zl`KAx*usZpwupdas!KH%B&rvjKX
zejW~9y`e&B3s%u20J!XQRG2t{ashh%J^;Wfn)K`UAH<1FD7!0vArhAVm9EnuigspIZx>yB)lQhw
z_0ozErEb4;BFxjYkc0?{Btd5|r0&%PoSqZuxg>fKvKQC$Q
zMexNcnzUQqBUK$DZglq|#735}lR|YbLgtXw=Qu3v@30DFFM`A>niRDuBU9DkAgrQE
zTlXI#pUa{APx%u}MThRCt{2n!jt?P!Pwzuapb{L-5}Jz?f{UapR#G64IedGkVJ!vZPbN!2x$^
z2^5p9Tb34=l$6wTP8wXgBp44KLX2rMR=7OSpyfI=ulR@ZELnPz?A!;m82h;U-o1B5
zcL2jM48w#@?>NWCJl>_Xu=F$;UTk+$$D0V$ZzS^7oT{z+(lZ7Z#KgBbkp{h}bBXDg&9XAJwUTRF5opKbM`K
z3b^mbiT=#5JzGm$&nF`6?z|##bMV)fmk5B?_0~#t3$HUyAp&PoX$!lFLp90FYbE
zQYOEO>fXM#47382OBMR{`ww!9Spop7*9*;2Qyd(;6GVi@MN?dMI%9p-mdDoSHUYrf
z>YLch-D?XJLV$=ox4+l}^NLOY)$<>{{yDn>)Q(R90MDO3{{Pv>FW*MKxBBGabi6oW
z7=~dOhG7`yZWH%AMI+=!U0LHwO2Mm&x(Wir{B#K64^WvNI612)^b5
zewcJ;Kw1)AwEyiH&CeNsWoK+jYSNv7Tp=%{CDFZV4|IpP+ocv0I|GfAGa5b)iM$_7
z?hFizkZ1u+jm_OEArY9~8R)mAL@1Xkp^Gr_C1`qQAXmr>HG)?cW8#QvXP{Wzpsmeq
zQbXFrP%c#>UzJIm2x@{nt@yeF)|Zz?%5WNX26TA-t6AOKC#%=P*Uul&xM)tzRCyep
zE8xfZIRMO5@C?H+48z=Q{sP+P@sO=Mll1@q01jnXNoGw=04e|g00;m8000000Mb*F
P00000NkvXXu0mjfBoSx{
literal 0
HcmV?d00001
diff --git a/Resources/Textures/CrystallPunk/Objects/Weapons/Melee/zweichhender.rsi/meta.json b/Resources/Textures/CrystallPunk/Objects/Weapons/Melee/zweichhender.rsi/meta.json
new file mode 100644
index 0000000000..5b9a69edac
--- /dev/null
+++ b/Resources/Textures/CrystallPunk/Objects/Weapons/Melee/zweichhender.rsi/meta.json
@@ -0,0 +1,34 @@
+{
+ "version": 1,
+ "license": "CC-BY-NC-SA-3.0",
+ "copyright": "Created by Hemo (Discord) for CrystallPunk",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "icon"
+ },
+ {
+ "name": "inhand-left",
+ "directions": 4
+ },
+ {
+ "name": "inhand-right",
+ "directions": 4
+ },
+ {
+ "name": "wielded-inhand-left",
+ "directions": 4
+ },
+ {
+ "name": "wielded-inhand-right",
+ "directions": 4
+ },
+ {
+ "name": "equipped-BACKPACK",
+ "directions": 4
+ }
+ ]
+}
diff --git a/Resources/Textures/CrystallPunk/Objects/Weapons/Melee/zweichhender.rsi/wielded-inhand-left.png b/Resources/Textures/CrystallPunk/Objects/Weapons/Melee/zweichhender.rsi/wielded-inhand-left.png
new file mode 100644
index 0000000000000000000000000000000000000000..3047bb47cc164bf13ddfebb2e24583b88153a8a8
GIT binary patch
literal 586
zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D%zUwOJXhE&XX
zd&@BUwu1=!hvh;|nk`l*Z>e6mDB;h@Kac4z+sCvW2crdr9Oo+rWVBE4pLp@1!Axe=
z1uHptRcFj{x~`_jq_|}d&$BbJYi@MD4R-nQU(H+HcJFr;zQeMDKD{~cogFV8|7&;cubgPVzh3hAE7z5eb!!t$cEw8M+^i4`J#)YQ|I0k1g%>Mg
zD(-GFf3uTu{U^~EN25$-cxGnITG9Js+p}rC0Y`;HZ2}=40Fw=yR5H&6o!Y*;K&b6u
zOrhtj;z`eB+7!im^&jtKTzz$!*IKL6-LcA&do4o0Shc>kF@I3D`sB82vf)ZC29q?k
zs_q^tJ?<_$Eojp|$;VfJ?#thrvGn@u&Cl6njti=1o-33&D`hCd6B$2e>#H9tl5I|W
z|GRV1(ka)}t*(~r6}-l&7;*otqe-rVCcplIeQiNfiY*V8ch%ZRPJ8<7*YP_`qF;#z
zx>hOAtM<42o$fVliRJ3EflJ>Cu3BXN|GY2*LxL?o*At(MAKmtM0R6(38sVAd>&u`8
WWOG1$cqw=?h~??(=d#Wzp$Pz1#RKX9
literal 0
HcmV?d00001
diff --git a/Resources/Textures/CrystallPunk/Objects/Weapons/Melee/zweichhender.rsi/wielded-inhand-right.png b/Resources/Textures/CrystallPunk/Objects/Weapons/Melee/zweichhender.rsi/wielded-inhand-right.png
new file mode 100644
index 0000000000000000000000000000000000000000..91c02785e5d3b3c28951762186b56ecb069d5d8f
GIT binary patch
literal 598
zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D%zzj?YihE&XX
zd&}N~DNu&}L%yJ*W5_mFfh{6}kHq+Vbsq*yHo1FEOE0f6P=KXX;L){fH$*y|FHCB=
zB63_=Nkw;&u4&VRY1d0Wy?e8%d|76VefQzL_1|}YujAOyE+7a7f$NQXN>^UqcmMSR
zrx{VgrCs$UA*=s3Oh4Fa@bpj30{`q~@>SLUSFo2=WCT?AHDB4c)?Y(nMgR6ao7#$&
zCS@mcJ7~?E)|w<3zB8D?;oq$-ywBvNo!5p&~Feiac(Ig%K`0qt=%9=;)q$ym?OU!PY}_uQAPeyZ^TB{*9}XF761~
zzhT$EKU;79dcZKj_GH=9pX^^IFL-`%wR0?Tx!%6+UUz8SFm
zdTMCb)ozKrrZYGlZ17RN{5G=x
zw)p?mXWmTvvrWiaSN$Q|+*_~aUNfm&!FlfV+O_k(>HnJvjFO47{bes2y(^CJ%>gC{
gzSIcMG+$o^Eg+i%h(X{|@MI9>>FVdQ&MBb@0NtnyH~;_u
literal 0
HcmV?d00001