Double fix

- Ability projectiles now properly visually disables on remotes
- network job data class created to generate json string from jobdata, workaround for scriptable object serialization
This commit is contained in:
Pedro Gomes 2024-05-13 22:39:36 +01:00
parent 8ce897c3aa
commit 494330fa1f
11 changed files with 150 additions and 36 deletions

View File

@ -210,31 +210,31 @@ AnimatorController:
m_DefaultFloat: 0
m_DefaultInt: 0
m_DefaultBool: 0
m_Controller: {fileID: 9100000}
m_Controller: {fileID: 0}
- m_Name: throw
m_Type: 9
m_DefaultFloat: 0
m_DefaultInt: 0
m_DefaultBool: 0
m_Controller: {fileID: 9100000}
m_Controller: {fileID: 0}
- m_Name: throwingTime
m_Type: 1
m_DefaultFloat: 0
m_DefaultInt: 0
m_DefaultBool: 0
m_Controller: {fileID: 9100000}
m_Controller: {fileID: 0}
- m_Name: castingTime
m_Type: 1
m_DefaultFloat: 0
m_DefaultInt: 0
m_DefaultBool: 0
m_Controller: {fileID: 9100000}
m_Controller: {fileID: 0}
- m_Name: cast
m_Type: 9
m_DefaultFloat: 0
m_DefaultInt: 0
m_DefaultBool: 0
m_Controller: {fileID: 9100000}
m_Controller: {fileID: 0}
m_AnimatorLayers:
- serializedVersion: 5
m_Name: Base Layer

View File

@ -45,6 +45,8 @@ MonoBehaviour:
- RPC_OnLevelUp
- RPC_OnDeath
- RPC_RemoteInit
- RPC_DisableVisuals
- RPC_SetTriggerBasedOnAbility
DisableAutoOpenWizard: 1
ShowSettings: 0
DevRegionSetOnce: 1

View File

@ -84,8 +84,8 @@ GameObject:
- component: {fileID: 686220006257547049}
- component: {fileID: 1935554058595948164}
- component: {fileID: 1164818847862470281}
- component: {fileID: 583639914168640231}
- component: {fileID: 7751829926650204974}
- component: {fileID: 583639914168640231}
m_Layer: 0
m_Name: Barbarian
m_TagString: Untagged
@ -150,6 +150,18 @@ Animator:
m_AllowConstantClipSamplingOptimization: 1
m_KeepAnimatorStateOnDisable: 0
m_WriteDefaultValuesOnDisable: 0
--- !u!114 &7751829926650204974
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 202136249774837139}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 75ba268000bc14f4287a8a1f8c3dabd6, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!114 &583639914168640231
MonoBehaviour:
m_ObjectHideFlags: 0
@ -168,23 +180,23 @@ MonoBehaviour:
- Type: 1
SynchronizeType: 1
Name: movementSpeed
- Type: 9
SynchronizeType: 0
Name: throw
- Type: 1
SynchronizeType: 1
Name: throwingTime
- Type: 1
SynchronizeType: 1
Name: castingTime
- Type: 9
SynchronizeType: 0
Name: cast
m_SynchronizeLayers:
- SynchronizeType: 1
LayerIndex: 0
- SynchronizeType: 1
LayerIndex: 1
--- !u!114 &7751829926650204974
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 202136249774837139}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 75ba268000bc14f4287a8a1f8c3dabd6, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1 &229964173686735936
GameObject:
m_ObjectHideFlags: 0

View File

@ -527,8 +527,8 @@ GameObject:
- component: {fileID: 2119839822041585648}
- component: {fileID: 1936994702313746464}
- component: {fileID: 1936994702313746463}
- component: {fileID: 1936994702313746462}
- component: {fileID: 1936994702313746461}
- component: {fileID: 1936994702313746462}
m_Layer: 0
m_Name: Knight
m_TagString: Untagged
@ -593,6 +593,18 @@ Animator:
m_AllowConstantClipSamplingOptimization: 1
m_KeepAnimatorStateOnDisable: 0
m_WriteDefaultValuesOnDisable: 0
--- !u!114 &1936994702313746461
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1594555445357595978}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 75ba268000bc14f4287a8a1f8c3dabd6, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!114 &1936994702313746462
MonoBehaviour:
m_ObjectHideFlags: 0
@ -611,23 +623,23 @@ MonoBehaviour:
- Type: 1
SynchronizeType: 1
Name: movementSpeed
- Type: 9
SynchronizeType: 0
Name: throw
- Type: 1
SynchronizeType: 1
Name: throwingTime
- Type: 1
SynchronizeType: 1
Name: castingTime
- Type: 9
SynchronizeType: 0
Name: cast
m_SynchronizeLayers:
- SynchronizeType: 1
LayerIndex: 0
- SynchronizeType: 1
LayerIndex: 1
--- !u!114 &1936994702313746461
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1594555445357595978}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 75ba268000bc14f4287a8a1f8c3dabd6, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1 &1604759570645128252
GameObject:
m_ObjectHideFlags: 0

View File

@ -1529,6 +1529,18 @@ MonoBehaviour:
- Type: 1
SynchronizeType: 1
Name: movementSpeed
- Type: 9
SynchronizeType: 0
Name: throw
- Type: 1
SynchronizeType: 1
Name: throwingTime
- Type: 1
SynchronizeType: 1
Name: castingTime
- Type: 9
SynchronizeType: 0
Name: cast
m_SynchronizeLayers:
- SynchronizeType: 1
LayerIndex: 0

View File

@ -38,7 +38,7 @@ RenderSettings:
m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 0}
m_IndirectSpecularColor: {r: 0.06384377, g: 0.12772793, b: 0.13339028, a: 1}
m_IndirectSpecularColor: {r: 0.06321287, g: 0.12646174, b: 0.1320537, a: 1}
m_UseRadianceAmbientProbe: 0
--- !u!157 &3
LightmapSettings:

View File

@ -60,6 +60,7 @@ public class CharacterAnimatorController : MonoBehaviour
break;
}
}
}

View File

@ -53,6 +53,11 @@ public class NetworkedProjectile : MonoBehaviour
{
ability = (ProjectileAbility)AbilityIndexer.Instance.Abilities[abilityIndex];
}
[PunRPC]
private void RPC_DisableVisuals()
{
visuals.SetActive(false);
}
private void SpawnHitParticleVFX(Vector3 position)
{
@ -122,6 +127,8 @@ public class NetworkedProjectile : MonoBehaviour
{
visuals.SetActive(false);
photonView.RPC(nameof(RPC_DisableVisuals), RpcTarget.Others);
yield return new WaitForSeconds(1.5f);
for (int i = hitSpawnedVFXs.Count - 1; i >= 0; i--)

View File

@ -24,3 +24,49 @@ public class JobData
coinFinalReward = coinReward;
}
}
[System.Serializable]
public class NetworkJobData
{
public string title = "Skelly'nvasion Cleanup Crew";
public string description = @"Location: The Skellyard (Graveyard)
Mission Brief:
Attention, Rift Hunters!The Skellyard, once a serene resting place, has been overrun by a menacing horde of skeletons - the dreaded Skelly'nvasion! As a member of the Cleanup Crew, your mission is to venture into the heart of the Skellyard and purge it of these skeletal invaders.";
public bool showJobTitlePrefix = true;
//in-game zone name
public string zoneName;
//scene name
public string levelName;
public int coinFinalReward;
public float experienceFinalReward;
public float reputationFinalReward;
public NetworkJobData(string title, string description, bool showJobTitlePrefix, string zoneName, string levelName, int coinFinalReward, float experienceFinalReward, float reputationFinalReward)
{
this.title = title;
this.description = description;
this.showJobTitlePrefix = showJobTitlePrefix;
this.zoneName = zoneName;
this.levelName = levelName;
this.coinFinalReward = coinFinalReward;
this.experienceFinalReward = experienceFinalReward;
this.reputationFinalReward = reputationFinalReward;
}
public NetworkJobData(JobData jobData)
{
this.title = jobData.jobDescription.title;
this.description = jobData.jobDescription.description;
this.showJobTitlePrefix = jobData.jobDescription.showJobTitlePrefix;
this.zoneName = jobData.zoneData.zoneName;
this.levelName = jobData.zoneData.levelName;
this.coinFinalReward = jobData.coinFinalReward;
this.experienceFinalReward = jobData.experienceFinalReward;
this.reputationFinalReward = jobData.reputationFinalReward;
}
}

View File

@ -23,6 +23,8 @@ public class JobInfoPanel : MonoBehaviour, IOnEventCallback
[SerializeField] private GameEventListener onJobsBoardReleased;
[SerializeField] private GameEventListener_Player onPlayerVoted;
NetworkJobData networkJobData;
private void Awake()
{
onJobSelected.Response.AddListener((job) => SetupJobInfoPanel(job, true));
@ -54,6 +56,22 @@ public class JobInfoPanel : MonoBehaviour, IOnEventCallback
if (showPanel)
ToggleInfoPanel(true);
}
private void SetupJobInfoPanel(NetworkJobData jobData, bool showPanel)
{
if (jobData.showJobTitlePrefix)
title.text = $"Job Title: {jobData.title}";
else
title.text = $"{jobData.title}";
description.text = jobData.description;
coinReward.text = jobData.coinFinalReward.ToString();
experienceReward.text = jobData.experienceFinalReward.ToString();
reputationReward.text = jobData.reputationFinalReward.ToString();
if (showPanel)
ToggleInfoPanel(true);
}
public void ToggleInfoPanel(bool visible)
{
@ -62,9 +80,13 @@ public class JobInfoPanel : MonoBehaviour, IOnEventCallback
private void Send_Others_OnJobSelected(JobData jobData)
{
if (PhotonNetwork.CurrentRoom.PlayerCount <= 1) return;
//if (PhotonNetwork.CurrentRoom.PlayerCount <= 1) return;
networkJobData = new NetworkJobData(jobData);
string jsonJobData = JsonUtility.ToJson(networkJobData);
Debug.Log($"JobData: {jsonJobData}");
string jsonJobData = JsonUtility.ToJson(jobData);
RaiseEventOptions raiseEventOptions = new RaiseEventOptions { Receivers = ReceiverGroup.Others };
PhotonNetwork.RaiseEvent(GameConstants.NetworkEventCodes.JobSelection, jsonJobData, raiseEventOptions, SendOptions.SendReliable);
}
@ -77,7 +99,7 @@ public class JobInfoPanel : MonoBehaviour, IOnEventCallback
Debug.Log("Job selected: " + jsonJobData);
SetupJobInfoPanel(JsonUtility.FromJson<JobData>(jsonJobData), false);
SetupJobInfoPanel(JsonUtility.FromJson<NetworkJobData>(jsonJobData), false);
}
}