From e9f0ff83e69d44752093d471b0ceb7ce1bec0ff5 Mon Sep 17 00:00:00 2001 From: Lemon-King Date: Tue, 11 Jun 2024 20:36:11 -0400 Subject: [PATCH] Move Corvus to CORV sprites Add Hexen and Armor values + other files I missed --- .../playersheets/hereticplayer.playersheet | 28 ++++++- .../hxdd/heretic/players/hxddhereticplayer.zs | 74 ++++++++++++++++++- resources/assets/zscript/lib/lemonutil.zs | 14 ++++ resources/gameinfo/doomednums.heretic | 4 +- resources/gameinfo/doomednums.hexen | 8 +- .../lemon/hxdd/builder/PackageBuilder.java | 1 + 6 files changed, 120 insertions(+), 9 deletions(-) diff --git a/resources/assets/playersheets/hereticplayer.playersheet b/resources/assets/playersheets/hereticplayer.playersheet index 722d8e0..1109892 100644 --- a/resources/assets/playersheets/hereticplayer.playersheet +++ b/resources/assets/playersheets/hereticplayer.playersheet @@ -7,7 +7,7 @@ "experience": [675,1600,3750,7250,15000,28500,52000,86000,110000,150000,150000], "health": [65,75,5,10,3,150], "mana": [80,90,5,10,3,200], - "ac": [10, 10, 25, 5, 15], + "ac": [0, 15, 25, 5, 20], "stats": { "strength": [6,10], "intelligence": [10,13], @@ -76,6 +76,32 @@ "Backpack": "BagOfHolding", + + "MeshArmor": { + "cvar": "hxdd_armor_mode", + "equals": 1, + "true": "SilverShield", + "false": "MeshArmor" + }, + "PlatinumHelm": { + "cvar": "hxdd_armor_mode", + "equals": 1, + "true": "SilverShield", + "false": "PlatinumHelm" + }, + "AmuletOfWarding": { + "cvar": "hxdd_armor_mode", + "equals": 1, + "true": "EnchantedShield", + "false": "AmuletOfWarding" + }, + "FalconShield": { + "cvar": "hxdd_armor_mode", + "equals": 1, + "true": "EnchantedShield", + "false": "FalconShield" + }, + "FWeapAxe": "Gauntlets", "CWeapStaff": "Crossbow", "MWeapFrost": "CrossbowHefty", diff --git a/resources/assets/zscript/actors/hxdd/heretic/players/hxddhereticplayer.zs b/resources/assets/zscript/actors/hxdd/heretic/players/hxddhereticplayer.zs index e70193c..80aee30 100644 --- a/resources/assets/zscript/actors/hxdd/heretic/players/hxddhereticplayer.zs +++ b/resources/assets/zscript/actors/hxdd/heretic/players/hxddhereticplayer.zs @@ -3,7 +3,7 @@ class HXDDHereticPlayer : HereticPlayer { Player.SpawnClass "Corvus"; Player.JumpZ 9; // Match Hexen Jump Player.HealRadiusType "Health"; - Player.Hexenarmor 10, 10, 25, 5, 15; // total 65, between mage and cleric + //Player.Hexenarmor 10, 10, 25, 5, 15; // total 65, between mage and cleric Player.Portrait "P_HWALK1"; Player.WeaponSlot 1, "Staff", "Gauntlets"; Player.WeaponSlot 2, "GoldWand"; @@ -14,4 +14,74 @@ class HXDDHereticPlayer : HereticPlayer { Player.WeaponSlot 7, "Mace"; Player.FlechetteType "ArtiPoisonBag2"; } -} \ No newline at end of file + + States { + Spawn: + CORV A -1; + Stop; + See: + CORV ABCD 4; + Loop; + Melee: + Missile: + CORV F 6 BRIGHT; + CORV E 12; + Goto Spawn; + Pain: + CORV G 4; + CORV G 4 A_Pain; + Goto Spawn; + Death: + CORV H 6 A_PlayerSkinCheck("AltSkinDeath"); + CORV I 6 A_PlayerScream; + CORV JK 6; + CORV L 6 A_NoBlocking; + CORV MNO 6; + CORV P -1; + Stop; + XDeath: + CORV Q 0 A_PlayerSkinCheck("AltSkinXDeath"); + CORV Q 5 A_PlayerScream; + CORV R 0 A_NoBlocking; + CORV R 5 A_SkullPop; + CORV STUVWX 5; + CORV Y -1; + Stop; + Burn: + FDTH A 5 BRIGHT A_StartSound("*burndeath"); + FDTH B 4 BRIGHT; + FDTH C 5 BRIGHT; + FDTH D 4 BRIGHT A_PlayerScream; + FDTH E 5 BRIGHT; + FDTH F 4 BRIGHT; + FDTH G 5 BRIGHT A_StartSound("*burndeath"); + FDTH H 4 BRIGHT; + FDTH I 5 BRIGHT; + FDTH J 4 BRIGHT; + FDTH K 5 BRIGHT; + FDTH L 4 BRIGHT; + FDTH M 5 BRIGHT; + FDTH N 4 BRIGHT; + FDTH O 5 BRIGHT A_NoBlocking; + FDTH P 4 BRIGHT; + FDTH Q 5 BRIGHT; + FDTH R 4 BRIGHT; + ACLO E 35 A_CheckPlayerDone; + Wait; + AltSkinDeath: + CORV H 10; + CORV I 10 A_PlayerScream; + CORV J 10 A_NoBlocking; + CORV KLM 10; + CORV N -1; + Stop; + AltSkinXDeath: + CORV O 5; + CORV P 5 A_XScream; + CORV Q 5 A_NoBlocking; + CORV RSTUV 5; + CORV W -1; + Stop; + } +} + diff --git a/resources/assets/zscript/lib/lemonutil.zs b/resources/assets/zscript/lib/lemonutil.zs index 2b78c13..2832c4f 100644 --- a/resources/assets/zscript/lib/lemonutil.zs +++ b/resources/assets/zscript/lib/lemonutil.zs @@ -335,6 +335,20 @@ class LemonUtil { } + // https://chat.openai.com/c/feee51cd-b3fc-4415-89d4-d32b50336225 + static vector3 GetEularFromVelocityAndAngularVelocity(Vector3 v, Vector3 av) { + HXDD_GM_Matrix mVel = HXDD_GM_Matrix.fromEulerAngles(v.x, v.y, v.z); + mVel = mVel.multiplyVector3((1, -1, 0)); + HXDD_GM_Matrix mAngVel = HXDD_GM_Matrix.fromEulerAngles(av.x, av.y, av.z); + mAngVel = mAngVel.multiplyVector3((1, -1, 0)); + + //HXDD_GM_Matrix comb = mVel.multiplyMatrix(mAngVel); + + double angle, pitch, roll = mVel.rotationToEulerAngles(); + return (angle, pitch, roll); + } + + // Easings static double Easing_Quadradic_In(double val) { return val*val; diff --git a/resources/gameinfo/doomednums.heretic b/resources/gameinfo/doomednums.heretic index 98ec3dd..9d03774 100644 --- a/resources/gameinfo/doomednums.heretic +++ b/resources/gameinfo/doomednums.heretic @@ -22,7 +22,7 @@ 28 = Chandelier 29 = SmallPillar 30 = ArtiEgg -31 = MultiClassEnchantedShield +31 = EnchantedShield 32 = ArtiSuperHealth 33 = ArtiTorch 34 = ArtiTimeBomb @@ -64,7 +64,7 @@ 82 = ArtiHealth 83 = ArtiFly 84 = ArtiInvulnerability -85 = MultiClassSilverShield +85 = SilverShield 86 = ArtiTomeOfPower 87 = Volcano 90 = Clink diff --git a/resources/gameinfo/doomednums.hexen b/resources/gameinfo/doomednums.hexen index 9d0c175..1667927 100644 --- a/resources/gameinfo/doomednums.hexen +++ b/resources/gameinfo/doomednums.hexen @@ -120,10 +120,10 @@ 8002 = ArtiSpeedBoots 8003 = ArtiBoostMana 8004 = Mana3 -8005 = MultiClassMeshArmor -8006 = MultiClassFalconShield -8007 = MultiClassPlatinumHelm -8008 = MultiClassAmuletOfWarding +8005 = MeshArmor +8006 = FalconShield +8007 = PlatinumHelm +8008 = AmuletOfWarding 8009 = CWeapFlame 8010 = FWeapAxe 8020 = IceGuy diff --git a/src/main/java/lemon/hxdd/builder/PackageBuilder.java b/src/main/java/lemon/hxdd/builder/PackageBuilder.java index 0594c95..a1a9773 100644 --- a/src/main/java/lemon/hxdd/builder/PackageBuilder.java +++ b/src/main/java/lemon/hxdd/builder/PackageBuilder.java @@ -240,6 +240,7 @@ private void OrganizeAssets() { this.organized.get("hexen").BatchRename("graphics", "M_HTIC", "M_HTICX", "equals"); // Player sprite conflict fixes + this.organized.get("heretic").BatchRename("sprites", "PLAY", "CORV", "startsWith"); // Heretic PLAY to CORV this.organized.get("hexen").BatchRename("sprites", "PLAY", "FIGH", "startsWith"); // Fighter Sprites this.organized.get("hexen").BatchRename("sprites", "FDTH", "FDHX", "startsWith"); // Fire Death Sprites this.organized.get("hexen").BatchRename("sprites", "CLER[0", "CLRFA0", "equals"); // cleric fix?