Changed the executioners mechanic

dev-hazim
Hazim Bin Ijaz 2 days ago
parent 1adc69542b
commit 5fd6490f08

@ -20,5 +20,6 @@ MonoBehaviour:
abilityCooldownTime: 0
abilityApplicationRadius: 20
prefab: {fileID: 2026889198986879358, guid: cbe217685dd069b47ac56eefeb3f6cdc, type: 3}
travelTime: 2
lineLength: 50
travelTime: 3
spawnRadius: 30
moveThroughCenterDistance: 60

@ -38,7 +38,7 @@ RenderSettings:
m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 0}
m_IndirectSpecularColor: {r: 0.18194216, g: 0.2276266, b: 0.3074139, a: 1}
m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1}
m_UseRadianceAmbientProbe: 0
--- !u!157 &3
LightmapSettings:
@ -2066,7 +2066,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 501460ae984b4e44d991e4b43e36afee, type: 3}
m_Name:
m_EditorClassIdentifier:
activeForesight: {fileID: 0}
mapCenter: {fileID: 485162418}
--- !u!4 &396364068
Transform:
m_ObjectHideFlags: 0
@ -2464,6 +2464,37 @@ MonoBehaviour:
SpawnWithObservers: 1
DontDestroyWithOwner: 0
AutoObjectParentSync: 1
--- !u!1 &485162417
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 485162418}
m_Layer: 0
m_Name: Center
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &485162418
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 485162417}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: -1, y: 0, z: -1.4}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &489428172
GameObject:
m_ObjectHideFlags: 0
@ -13686,11 +13717,11 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 1676734515771252668, guid: 0193228de87741d40a42e561901c9083, type: 3}
propertyPath: m_LocalRotation.y
value: 0.28987613
value: 0.28987607
objectReference: {fileID: 0}
- target: {fileID: 1676734515771252668, guid: 0193228de87741d40a42e561901c9083, type: 3}
propertyPath: m_LocalRotation.z
value: -0.18152039
value: -0.18152031
objectReference: {fileID: 0}
- target: {fileID: 1676734516302391364, guid: 0193228de87741d40a42e561901c9083, type: 3}
propertyPath: m_UpdateMethod
@ -471843,3 +471874,4 @@ SceneRoots:
- {fileID: 5277713031461887262}
- {fileID: 917181830697422961}
- {fileID: 1010981557}
- {fileID: 485162418}

@ -113,10 +113,10 @@ public class AbilitySystem : NetworkBehaviour
isWallPlacementStarted = false;
}
}
else if (activeAbility.abilityKey == "TheExecutioner")
{
HandleExecutionerPlacement();
}
// else if (activeAbility.abilityKey == "TheExecutioner")
// {
// HandleExecutionerPlacement();
// }
else
{
ManageStandardAbilityIndicator();

@ -11,8 +11,7 @@ public class CrowManager : NetworkBehaviour
private List<ServerCharacter> players = new List<ServerCharacter>();
private ServerCharacter currentCrow;
public GameObject activeForesight;
public Transform mapCenter;
private void Awake()
{
if (Instance != null && Instance != this)

@ -7,27 +7,34 @@ public class TheExecutionerAbility : Ability
{
[Header("Executioner Settings")]
public float travelTime = 2f;
public float lineLength = 50f;
public float boxStartingPointOffset = 20f;
public float boxEndingPointOffset = 20f;
public override void Execute(ServerCharacter character, Vector3 startPoint, Vector3 direction)
public float spawnRadius = 18f; // Fixed spawn radius around the map center
public override void Execute(ServerCharacter character, Vector3 ignoredStartPoint, Vector3 ignoredDirection)
{
// Extend start and end points
Vector3 adjustedStartPoint = startPoint - (direction * boxStartingPointOffset);
Vector3 adjustedEndPoint = startPoint + (direction * lineLength) + (direction * boxEndingPointOffset);
GameObject boxInstance = Instantiate(prefab, adjustedStartPoint, Quaternion.LookRotation(direction));
Vector3 mapCenter = CrowManager.Instance.mapCenter.position; // Use dynamic map center
// Generate a random point on the edge of the circle (radius = spawnRadius)
float angle = Random.Range(0f, Mathf.PI * 2);
Vector3 spawnPoint = new Vector3(
mapCenter.x + Mathf.Cos(angle) * spawnRadius,
mapCenter.y,
mapCenter.z + Mathf.Sin(angle) * spawnRadius
);
// Calculate the exact opposite point across the center (radius * 2 away)
Vector3 endPoint = mapCenter + (mapCenter - spawnPoint);
// Spawn and initialize the executioner box
GameObject boxInstance = Instantiate(prefab, spawnPoint, Quaternion.LookRotation(endPoint - spawnPoint));
if (boxInstance.TryGetComponent<NetworkObject>(out var netObj))
{
netObj.Spawn();
boxInstance.GetComponent<ExecutionerBox>().Initialize(
character,
adjustedStartPoint,
adjustedEndPoint,
spawnPoint,
endPoint,
travelTime
);
}
}
}

Loading…
Cancel
Save