diff --git a/Assets/GWConquest/Resources/Database/Ships.csv b/Assets/GWConquest/Resources/Database/Ships.csv index 4a3b13b..b7d057e 100644 --- a/Assets/GWConquest/Resources/Database/Ships.csv +++ b/Assets/GWConquest/Resources/Database/Ships.csv @@ -5,11 +5,11 @@ Frigate,Frigate,Ship,200,100,10,2/4,20/5,2/0,0.9/0.8,1,0,4,1,2,6,10,100,100,100, Escort Frigate,EscortFrigate,Ship,180,100,10,1/6,20/10,2/0,0.9/0.8,1,0,5,1,3,6,10,100,100,100,10,2,2,3,,,,,200,10,10,10 Cruiser,Cruiser,Ship,300,150,15,3/2/3,35/15/8,3/2/0,0.9/0.9/0.8,2,0,3,1,2,6,10,100,100,100,10,2,2,3,,,,,200,10,10,10 Heavy Cruiser,HeavyCruiser,Ship,350,175,18,3/2/2,40/15/8,3/2/0,0.9/0.9/0.8,2,0,3,1,3,6,10,100,100,100,10,2,2,3,,,,,200,10,10,10 -Destroyer,Destroyer,Ship,500,250,25,2/3/2,60/30/10,4/3/0,0.9/0.9/0.8,3,0,2.5,2,4,6,10,100,100,100,10,2,2,3,,,,,200,10,10,10 -Battleship,Battleship,Ship,1000,600,60,2/2/4/4,80/50/30/15,5/4/3/0,0.9/0.9/0.8/0.8,4,0,2,2,4,6,10,100,100,100,10,2,2,1,,,,,200,10,10,10 -Battleship,Battleship2,Ship,1000,600,60,2/2/4/4,80/50/30/15,5/4/3/0,0.9/0.9/0.8/0.8,4,0,2,2,4,6,10,100,100,100,10,2,2,1,,,,,200,10,10,10 -Dreadnought,Dreadnought,Ship,1800,1000,100,2/2/5/5,120/70/50/20,5/5/3/0,1.0/0.9/0.8/0.8,5,0,1.5,3,5,6,10,100,100,100,10,2,2,1,,,,,200,10,10,10 -Dreadnought,Dreadnought2,Ship,1800,1000,100,2/2/5/5,120/70/50/20,5/5/3/0,1.0/0.9/0.8/0.8,5,0,1.5,3,5,6,10,100,100,100,10,2,2,1,,,,,200,10,10,10 +Destroyer,Destroyer,Ship,500,250,25,2/3/2,60/30/10,4/3/0,0.9/0.9/0.8,3,0,2.5,2,4,6,20,100,100,100,10,2,2,3,,,,,200,10,10,10 +Battleship,Battleship,Ship,1000,600,60,2/2/4/4,80/50/30/15,5/4/3/0,0.9/0.9/0.8/0.8,4,0,2,2,4,6,40,100,100,100,10,2,2,1,,,,,200,10,10,10 +Battleship,Battleship2,Ship,1000,600,60,2/2/4/4,80/50/30/15,5/4/3/0,0.9/0.9/0.8/0.8,4,0,2,2,4,6,40,100,100,100,10,2,2,1,,,,,200,10,10,10 +Dreadnought,Dreadnought,Ship,1800,1000,100,2/2/5/5,120/70/50/20,5/5/3/0,1.0/0.9/0.8/0.8,5,0,1.5,3,5,6,50,100,100,100,10,2,2,1,,,,,200,10,10,10 +Dreadnought,Dreadnought2,Ship,1800,1000,100,2/2/5/5,120/70/50/20,5/5/3/0,1.0/0.9/0.8/0.8,5,0,1.5,3,5,6,50,100,100,100,10,2,2,1,,,,,200,10,10,10 Transport Frigate,TransportFrigate,Ship,200,100,10,2,5,0,0.8,1,0,4,1,1,6,10,100,100,100,10,2,2,2,,,,,200,10,10,10 Transport Cruiser,TransportCruiser,Ship,300,150,15,1/2,20/5,2/0,0.9/0.8,2,0,3,1,1,6,10,100,100,100,10,2,2,3,,,,,200,10,10,10 Transport Hauler,TransportHauler,Ship,500,250,25,2/4,25/5,2/0,0.9/0.8,3,0,2,1,1,6,10,100,100,100,10,2,2,3,,,,,,,, @@ -17,19 +17,19 @@ Light Carrier,LightCarrier,Ship,200,100,10,2,5,0,0.8,2,0,4,1,1,6,10,100,100,100, Medium Carrier,MediumCarrier,Ship,300,150,15,1/2,20/5,2/0,0.9/0.8,2,0,3,1,1,6,10,100,100,100,10,2,2,3,,,,,,,, Heavy Carrier,HeavyCarrier,Ship,500,250,25,2/4,25/5,2/0,0.9/0.8,3,0,2,1,1,6,10,100,100,100,10,2,2,3,,,,,,,, Escort Carrier,EscortCarrier,Ship,250,110,11,1/4,20/5,2/0,0.9/0.8,2,0,5,1,1,6,10,100,100,100,10,2,2,1,,,,,200,10,10,10 -Fighter Squadron,FighterSquadron,Squadron,10,0,0,4,4,0,0.8,0,0.8,6,1,0,0,10,100,100,100,11,3,3,2,,,,,,,, -Bomber Squadron,BomberSquadron,Squadron,15,0,0,4,30,3,0.4,0,0.7,5,1,0,0,10,100,100,100,12,4,4,3,,,,,,,, -Advanced Fighter Squadron,AdvancedFighterSquadron,Squadron,20,0,0,6,9,0,0.9,0,0.9,6,1,0,0,10,100,100,100,13,5,5,4,,,,,,,, -Advanced Bomber Squadron,AdvancedBomberSquadron,Squadron,25,0,0,6,50,4,0.6,0,0.8,5,1,0,0,10,100,100,100,14,6,6,5,,,,,,,, -Fighter-Bomber Squadron,FighterBomberSquadron,Squadron,20,0,0,3/3,6/40,0/3,0.9/0.5,0,0.8,5,1,0,0,10,100,100,100,15,7,7,6,,,,,,,, +Fighter Squadron,FighterSquadron,Squadron,10,0,0,4,4,0,0.8,0,0.8,6,1,0,0,5,100,100,100,11,3,3,2,,,,,,,, +Bomber Squadron,BomberSquadron,Squadron,15,0,0,4,30,3,0.4,0,0.7,5,1,0,0,5,100,100,100,12,4,4,3,,,,,,,, +Advanced Fighter Squadron,AdvancedFighterSquadron,Squadron,20,0,0,6,9,0,0.9,0,0.9,6,1,0,0,5,100,100,100,13,5,5,4,,,,,,,, +Advanced Bomber Squadron,AdvancedBomberSquadron,Squadron,25,0,0,6,50,4,0.6,0,0.8,5,1,0,0,5,100,100,100,14,6,6,5,,,,,,,, +Fighter-Bomber Squadron,FighterBomberSquadron,Squadron,20,0,0,3/3,6/40,0/3,0.9/0.5,0,0.8,5,1,0,0,5,100,100,100,15,7,7,6,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, Wythler:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, Wythler Attack Squadron,WythlerAttackSquadron,Squadron,25,0,0,6,50,4,0.6,0,0.6,5,1,0,0,10,100,100,100,,,,,,,,,,,, -Silverblade-Class Strike Craft,Silverblade-Class Strike Craft,Ship,200,140,16,1,15,1,0.9,0,0.1,6,1,4,6,10,100,100,100,10,2,2,1,,,,,,,, -Stormlance-Class Escort Frigate,Stormlance-Class Escort Frigate,Ship,300,240,30,1/6,25/15,2/0,0.9/0.8,1,0.1,6,1,4,6,10,100,100,100,10,2,2,3,,,,,,,, -Goldstar-Class Destroyer,Goldstar-Class Destroyer,Ship,500,300,50,2/3/2,65/35/15,4/3/0,0.9/0.9/0.8,3,0,4,2,4,6,10,100,100,100,10,2,2,3,,,,,,,, -Kyzagan-Class Heavy Destroyer,Kyzagan-Class Heavy Destroyer,Ship,750,300,50,2/3/2,65/35/15,4/3/0,0.9/0.9/0.8,3,0,3,2,4,6,10,100,100,100,10,2,2,3,,,,,,,, -Keshig-Class Battleship,Keshig-Class Battleship,Ship,1000,600,100,2/2/4/4,85/55/35/15,5/4/3/0,0.9/0.9/0.8/0.8,4,0,3,2,4,6,10,100,100,100,10,2,2,1,,,,,,,, +Silverblade-Class Strike Craft,Silverblade-Class Strike Craft,Ship,200,140,16,1,15,1,0.9,0,0.1,6,1,4,6,30,100,100,100,10,2,2,1,,,,,,,, +Stormlance-Class Escort Frigate,Stormlance-Class Escort Frigate,Ship,300,240,30,1/6,25/15,2/0,0.9/0.8,1,0.1,6,1,4,6,30,100,100,100,10,2,2,3,,,,,,,, +Goldstar-Class Destroyer,Goldstar-Class Destroyer,Ship,500,300,50,2/3/2,65/35/15,4/3/0,0.9/0.9/0.8,3,0,4,2,4,6,50,100,100,100,10,2,2,3,,,,,,,, +Kyzagan-Class Heavy Destroyer,Kyzagan-Class Heavy Destroyer,Ship,750,300,50,2/3/2,65/35/15,4/3/0,0.9/0.9/0.8,3,0,3,2,4,6,60,100,100,100,10,2,2,3,,,,,,,, +Keshig-Class Battleship,Keshig-Class Battleship,Ship,1000,600,100,2/2/4/4,85/55/35/15,5/4/3/0,0.9/0.9/0.8/0.8,4,0,3,2,4,6,70,100,100,100,10,2,2,1,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, Republic:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, Trailhunter-Class,,Squadron,,,,,,,,,,,,,,,,,,,,,,,,,,,,, @@ -41,7 +41,7 @@ Starjumper-Class,,Ship,,,,,,,,,,,,,,,,,,,,,,,,,,,,, Starfarer-Class,,Ship,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, Rokurant:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -Collossus (Transport),Collossus,Ship,800,300,30,3/2/3,35/15/8,3/2/0,0.9/0.9/0.8,4,0,1,1,4,6,10,100,100,100,10,2,2,1,,,,,,,, +Collossus (Transport),Collossus,Ship,800,300,30,3/2/3,35/15/8,3/2/0,0.9/0.9/0.8,4,0,1,1,4,6,40,100,100,100,10,2,2,1,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, Exan:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, Deodyle,,Ship,,,,,,,,,,,,,,,,,,,,,,,,,,,,, diff --git a/Assets/GWConquest/Resources/PlanetConnection.prefab b/Assets/GWConquest/Resources/PlanetConnection.prefab index 43a3066..c3459a1 100644 --- a/Assets/GWConquest/Resources/PlanetConnection.prefab +++ b/Assets/GWConquest/Resources/PlanetConnection.prefab @@ -43,10 +43,12 @@ LineRenderer: m_CastShadows: 1 m_ReceiveShadows: 1 m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 m_MotionVectors: 0 m_LightProbeUsage: 0 m_ReflectionProbeUsage: 0 m_RayTracingMode: 0 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -76,7 +78,7 @@ LineRenderer: - {x: 1000, y: 0, z: 0} m_Parameters: serializedVersion: 3 - widthMultiplier: 5 + widthMultiplier: 3 widthCurve: serializedVersion: 2 m_Curve: diff --git a/Assets/GWConquest/Scenes/GalaxyMap.unity b/Assets/GWConquest/Scenes/GalaxyMap.unity index e8ccef8..e762806 100644 --- a/Assets/GWConquest/Scenes/GalaxyMap.unity +++ b/Assets/GWConquest/Scenes/GalaxyMap.unity @@ -7742,7 +7742,7 @@ PrefabInstance: - target: {fileID: 7870129596896663125, guid: 8b0edf9c7ac699a4da4b06f9b352ff47, type: 3} propertyPath: m_SizeDelta.y - value: -219.99994 + value: -279.82 objectReference: {fileID: 0} - target: {fileID: 7870129596896663125, guid: 8b0edf9c7ac699a4da4b06f9b352ff47, type: 3} @@ -7787,7 +7787,7 @@ PrefabInstance: - target: {fileID: 7870129596896663125, guid: 8b0edf9c7ac699a4da4b06f9b352ff47, type: 3} propertyPath: m_AnchoredPosition.y - value: -59.99997 + value: -7.088623 objectReference: {fileID: 0} - target: {fileID: 7870129596896663125, guid: 8b0edf9c7ac699a4da4b06f9b352ff47, type: 3} @@ -36310,8 +36310,8 @@ GameObject: - component: {fileID: 692834486} - component: {fileID: 692834485} - component: {fileID: 692834484} - - component: {fileID: 692834480} - component: {fileID: 692834489} + - component: {fileID: 692834480} - component: {fileID: 692834488} - component: {fileID: 692834492} - component: {fileID: 692834491} @@ -36320,6 +36320,7 @@ GameObject: - component: {fileID: 692834494} - component: {fileID: 692834493} - component: {fileID: 692834496} + - component: {fileID: 692834497} m_Layer: 0 m_Name: TestUnits m_TagString: Untagged @@ -36630,6 +36631,23 @@ MonoBehaviour: playerId: 0 zone: {fileID: 801858043} assignAsLeader: 0 +--- !u!114 &692834497 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 692834478} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e3fbe30dead34c49a8585bf21ae46af, type: 3} + m_Name: + m_EditorClassIdentifier: + unitName: Battleship + unitCount: 2 + playerId: 1 + zone: {fileID: 781120733} + assignAsLeader: 0 --- !u!1001 &697265130 PrefabInstance: m_ObjectHideFlags: 0 @@ -50150,7 +50168,7 @@ MonoBehaviour: m_TargetGraphic: {fileID: 1089927274} m_HandleRect: {fileID: 1089927273} m_Direction: 2 - m_Value: 1 + m_Value: 0 m_Size: 1 m_NumberOfSteps: 0 m_OnValueChanged: diff --git a/Assets/GWConquest/Scripts/Battle.cs b/Assets/GWConquest/Scripts/Battle.cs index a6fefb6..d9c038a 100644 --- a/Assets/GWConquest/Scripts/Battle.cs +++ b/Assets/GWConquest/Scripts/Battle.cs @@ -432,7 +432,8 @@ namespace GWConquest return; int damage = weapon.Damage; - float modifier = GetArmourModifier(target.Class.Armour, weapon.Penetration); + float effArmour = target.Shields > 0 ? 0f : target.Class.Armour; + float modifier = GetArmourModifier(effArmour, weapon.Penetration); damage = Mathf.RoundToInt(damage * modifier); @@ -457,7 +458,7 @@ namespace GWConquest weaponType = weapon.Penetration > 1f ? WeaponType.Heavy : WeaponType.MG; } - target.TakeDamage(damage, action.Unit, isGlancingHit, weaponType); + target.TakeDamage(damage, action.Unit, isGlancingHit, weapon, weaponType); if(target.RevealState != RevealState.Visible) { @@ -644,7 +645,7 @@ namespace GWConquest return Random.Range(0f, 1f) <= chance; } - private static float GetArmourModifier(float armour, float penetration) + public static float GetArmourModifier(float armour, float penetration) { float diff = armour - penetration; if(diff <= 0) { @@ -652,19 +653,19 @@ namespace GWConquest } else if(diff <= 1) { - return 0.2f; + return 0.5f; } else if(diff <= 2) { - return 0.15f; + return 0.25f; } else if(diff <= 3) { - return 0.1f; + return 0.125f; } else if(diff <= 4) { - return 0.05f; + return 0.0625f; } else { return 0f; diff --git a/Assets/GWConquest/Scripts/Unit.cs b/Assets/GWConquest/Scripts/Unit.cs index 329a68f..b5109f8 100644 --- a/Assets/GWConquest/Scripts/Unit.cs +++ b/Assets/GWConquest/Scripts/Unit.cs @@ -2,6 +2,7 @@ using UnityEngine; using Photon.Bolt; using Photon.Bolt.Utils; +using System.Collections.Generic; namespace GWConquest { @@ -245,7 +246,7 @@ namespace GWConquest return unit; } - public void TakeDamage(int damage, Unit attacker, bool isGlancingHit=false, WeaponType weaponType=WeaponType.Light) + public void TakeDamage(int damage, Unit attacker, bool isGlancingHit=false, WeaponStats weapon=null, WeaponType weaponType=WeaponType.Light) { int remainingDamage = damage; bool shieldBroken = false; @@ -260,6 +261,12 @@ namespace GWConquest else { remainingDamage -= Mathf.RoundToInt(Shields); + if(weapon != null) + { + float armourMod = Battle.GetArmourModifier(Class.Armour, weapon.Penetration); + remainingDamage = Mathf.RoundToInt(armourMod * remainingDamage); + } + Shields = 0; } @@ -285,7 +292,17 @@ namespace GWConquest if (!IsInReserve && CurrentFlank != null) { - foreach (Unit u in CurrentFlank.Units) + var unitsToDamage = CurrentFlank.Units; + if(CurrentBattle.IsSpaceBattle) + { + var ownRow = CurrentFlank.GetRowForUnit(this); + var attackRange = 1; + unitsToDamage = unitsToDamage.Where(u => { + var otherRow = CurrentFlank.GetRowForUnit(u); + return Mathf.Abs(otherRow-ownRow) <= attackRange; + }); + } + foreach (Unit u in unitsToDamage) { if (u != this) { @@ -295,8 +312,9 @@ namespace GWConquest } float flankFactor = IsInReserve ? 1.5f : 1f; + float moraleFactor = CurrentBattle.IsSpaceBattle ? FormationMoraleDamageFactorSpace : FormationMoraleDamageFactor; - Formation.TakeMoraleDamage((Hitpoints <= 0 ? Class.Morale : remainingDamage * FormationMoraleDamageFactor) * flankFactor); + Formation.TakeMoraleDamage((Hitpoints <= 0 ? Class.Morale : remainingDamage * moraleFactor) * flankFactor); } var evnt = UnitDamageAnimEvent.Create(entity); @@ -489,6 +507,7 @@ namespace GWConquest public const float SurroundingMoraleDamageFactor = 0.1f; public const float FormationMoraleDamageFactor = 0.5f; + public const float FormationMoraleDamageFactorSpace = 0.05f; public void TakeMoraleDamage(float moraleDamage) {