From d798ff166cb16f90061f2ab55d976ce8f24b17c5 Mon Sep 17 00:00:00 2001 From: RosimInc Date: Sun, 16 Aug 2015 21:50:26 -0400 Subject: [PATCH 1/4] Implemented shout bubbles Signed-off-by: RosimInc --- Assets/Prefabs/PersonNode.prefab | 76 +++++++- Assets/Resources/Materials/ShoutBubble.mat | 165 ++++++++++++++++++ .../Resources/Materials/ShoutBubble.mat.meta | 8 + Assets/Scripts/Models/Friendship.cs | 1 - Assets/Scripts/Models/Person.cs | 65 ++++++- Assets/Scripts/Models/Status.cs | 16 +- Assets/Scripts/PersonNode.cs | 5 +- 7 files changed, 316 insertions(+), 20 deletions(-) create mode 100644 Assets/Resources/Materials/ShoutBubble.mat create mode 100644 Assets/Resources/Materials/ShoutBubble.mat.meta diff --git a/Assets/Prefabs/PersonNode.prefab b/Assets/Prefabs/PersonNode.prefab index a2b1414..85baf6f 100644 --- a/Assets/Prefabs/PersonNode.prefab +++ b/Assets/Prefabs/PersonNode.prefab @@ -17,6 +17,23 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 +--- !u!1 &138142 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 495284} + - 33: {fileID: 3383236} + - 23: {fileID: 2397622} + m_Layer: 0 + m_Name: BloodSplatter + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 --- !u!1 &147480 GameObject: m_ObjectHideFlags: 0 @@ -28,7 +45,7 @@ GameObject: - 33: {fileID: 3395424} - 23: {fileID: 2372840} m_Layer: 0 - m_Name: BloodSplatter + m_Name: ShoutBubble m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -98,9 +115,10 @@ Transform: m_PrefabInternal: {fileID: 100100000} m_GameObject: {fileID: 193868} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: -.133731544, y: -.756275117, z: 0} + m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: + - {fileID: 495284} - {fileID: 424146} - {fileID: 496448} m_Father: {fileID: 0} @@ -112,11 +130,11 @@ Transform: m_PrefabInternal: {fileID: 100100000} m_GameObject: {fileID: 147480} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -.0109999999} - m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalPosition: {x: .800000012, y: .75, z: -.0500000007} + m_LocalScale: {x: .75, y: .75, z: 1} m_Children: [] m_Father: {fileID: 410576} - m_RootOrder: 0 + m_RootOrder: 1 --- !u!4 &476902 Transform: m_ObjectHideFlags: 1 @@ -129,6 +147,18 @@ Transform: m_Children: [] m_Father: {fileID: 496448} m_RootOrder: 0 +--- !u!4 &495284 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 138142} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -.0109999999} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 410576} + m_RootOrder: 0 --- !u!4 &496448 Transform: m_ObjectHideFlags: 1 @@ -142,7 +172,7 @@ Transform: - {fileID: 476902} - {fileID: 498100} m_Father: {fileID: 410576} - m_RootOrder: 1 + m_RootOrder: 2 --- !u!4 &498100 Transform: m_ObjectHideFlags: 1 @@ -261,6 +291,30 @@ MeshRenderer: m_CastShadows: 0 m_ReceiveShadows: 1 m_Materials: + - {fileID: 2100000, guid: 3480ff1ba6e1dea4da6b793db1251755, type: 2} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 1 + m_ReflectionProbeUsage: 1 + m_ProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_ImportantGI: 0 + m_AutoUVMaxDistance: .5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &2397622 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 138142} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 1 + m_Materials: - {fileID: 2100000, guid: 8c192887af84c6d489323981a0248291, type: 2} m_SubsetIndices: m_StaticBatchRoot: {fileID: 0} @@ -296,6 +350,13 @@ MeshFilter: m_PrefabInternal: {fileID: 100100000} m_GameObject: {fileID: 136744} m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} +--- !u!33 &3383236 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 138142} + m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} --- !u!33 &3387390 MeshFilter: m_ObjectHideFlags: 1 @@ -368,7 +429,8 @@ MonoBehaviour: KillHoldDuration: 2 xMarkLeft: {fileID: 11439868} xMarkRight: {fileID: 11422410} - bloodSplatter: {fileID: 2372840} + bloodSplatter: {fileID: 2397622} + shoutBubble: {fileID: 2372840} --- !u!114 &11422410 MonoBehaviour: m_ObjectHideFlags: 1 diff --git a/Assets/Resources/Materials/ShoutBubble.mat b/Assets/Resources/Materials/ShoutBubble.mat new file mode 100644 index 0000000..05294d6 --- /dev/null +++ b/Assets/Resources/Materials/ShoutBubble.mat @@ -0,0 +1,165 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 5 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: ShoutBubble + m_Shader: {fileID: 32, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: + m_LightmapFlags: 5 + m_CustomRenderQueue: -1 + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + data: + first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: 856ca562f724d934e89bca0999754c23, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + data: + first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + data: + first: + name: _Cutoff + second: .5 + data: + first: + name: _Shininess + second: .257999986 + data: + first: + name: _SrcBlend + second: 1 + data: + first: + name: _DstBlend + second: 0 + data: + first: + name: _Parallax + second: .0199999996 + data: + first: + name: _ZWrite + second: 1 + data: + first: + name: _Glossiness + second: .5 + data: + first: + name: _BumpScale + second: 1 + data: + first: + name: _OcclusionStrength + second: 1 + data: + first: + name: _DetailNormalMapScale + second: 1 + data: + first: + name: _UVSec + second: 0 + data: + first: + name: _EmissionScaleUI + second: 0 + data: + first: + name: _Mode + second: 0 + data: + first: + name: _Metallic + second: 0 + data: + first: + name: _Ratio + second: 0 + m_Colors: + data: + first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 0} + data: + first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _SpecColor + second: {r: .5, g: .5, b: .5, a: 0} + data: + first: + name: _EmissionColorUI + second: {r: 1, g: 1, b: 1, a: 1} + data: + first: + name: _CompletedColor + second: {r: 0, g: 0, b: 0, a: 0} + data: + first: + name: _RemainingColor + second: {r: 1, g: 1, b: 1, a: 1} diff --git a/Assets/Resources/Materials/ShoutBubble.mat.meta b/Assets/Resources/Materials/ShoutBubble.mat.meta new file mode 100644 index 0000000..7e2e35f --- /dev/null +++ b/Assets/Resources/Materials/ShoutBubble.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3480ff1ba6e1dea4da6b793db1251755 +timeCreated: 1439775713 +licenseType: Free +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Models/Friendship.cs b/Assets/Scripts/Models/Friendship.cs index 277d38c..1470b66 100644 --- a/Assets/Scripts/Models/Friendship.cs +++ b/Assets/Scripts/Models/Friendship.cs @@ -43,7 +43,6 @@ namespace DeathBook.Model link.Awareness += Self.Strategy.GetDeathNoticing(1f /*Friend.Popularity*/, Link.Importance, Self.FriendCount, Self.AwarenessLevel); - link.Awareness = Mathf.Min(link.Awareness + deltaTime * 0.1f, 1f); if (link.Awareness >= 1f) { self.NoticeDeath(this); diff --git a/Assets/Scripts/Models/Person.cs b/Assets/Scripts/Models/Person.cs index aef10cc..8ea6c85 100644 --- a/Assets/Scripts/Models/Person.cs +++ b/Assets/Scripts/Models/Person.cs @@ -1,6 +1,5 @@ using UnityEngine; using System.Collections.Generic; -using System; using DeathBook.Util; namespace DeathBook.Model @@ -43,6 +42,18 @@ namespace DeathBook.Model float change = value - awarenessLevel; awarenessLevel = value; LevelManager.Instance.GameLevel.AddAwareness(change); + NotifyObservers(); + } + } + + private static Level level; + private static Level GameLevel + { + get + { + if (level == null) + level = LevelManager.Instance.GameLevel; + return level; } } @@ -58,8 +69,15 @@ namespace DeathBook.Model private Sprite picture; public Sprite Picture { get { return picture; } } - private Action onSelected; - public Action OnSelected {get {return onSelected;} set { onSelected = value; } } + private System.Action onSelected; + public System.Action OnSelected {get {return onSelected;} set { onSelected = value; } } + + private Status status = null; + public Status CurrentStatus + { + get { return status; } + set { status = value; NotifyObservers(); } + } private GameStrategy strategy; public GameStrategy Strategy @@ -110,30 +128,32 @@ namespace DeathBook.Model //Debug.Log("Person " + id + " died!"); alive = false; - if (LevelManager.Instance.GameLevel.tutorialInt == 4) - LevelManager.Instance.GameLevel.allowNext = true; + if (GameLevel.tutorialInt == 4) + GameLevel.allowNext = true; foreach (Friendship f in friendsList) f.Other.NotifyFriendWasKilled(); NotifyObservers(); - LevelManager.Instance.GameLevel.RegisterKill(this); + GameLevel.RegisterKill(this); return true; } public void NoticeDeath(Friendship f) { - int deathTime = LevelManager.Instance.GameLevel.GameTime; + int deathTime = GameLevel.GameTime; int sinceLastDeath = numDeadFriends == 0 ? int.MaxValue/2 : deathTime - lastFriendDeath; float strategyOutput = Strategy.GetAwarenessChange(numDeadFriends, numAliveFriends, sinceLastDeath); AwarenessLevel = Mathf.Min(AwarenessLevel + strategyOutput, 1f); - NotifyObservers(); + if (Random.value < 0.3f) + { + CurrentStatus = new Status(GameLevel.GameTime, f); + } - //Debug.Log("I am " + id + " and I know my friend " + f.Friend.Id + " was killed.. " + strategyOutput); } @@ -145,8 +165,35 @@ namespace DeathBook.Model return !(time < ConnectionTime && time > DisconnectionTime); } + private void ShareStatus() + { + if (Random.value < 0.3f) + { + foreach (Friendship f in friendsList) + f.Friend.ReceiveStatus(CurrentStatus); + } + } + + public void ReceiveStatus(Status newStatus) + { + Debug.Log("Oh noes, " + newStatus.Friends.Friend + " died..."); + /*foreach (Friendship f in friendsList) + { + if (f.Friend == newStatus.Friends) ; + }*/ + } + public void Update(float deltaTime) { + if (CurrentStatus != null) + { + if (CurrentStatus.EndTime < GameLevel.GameTime) + { + ShareStatus(); + CurrentStatus = null; + } + } + if (!Alive) return; diff --git a/Assets/Scripts/Models/Status.cs b/Assets/Scripts/Models/Status.cs index 60b01dd..4a7ce09 100644 --- a/Assets/Scripts/Models/Status.cs +++ b/Assets/Scripts/Models/Status.cs @@ -2,8 +2,20 @@ namespace DeathBook.Model { - public class Status : Post + public class Status { - //TODO + /*private int startTime; + public int StartTime { get { return startTime; } }*/ + private int endTime; + public int EndTime { get { return endTime; } } + private Friendship friends; + public Friendship Friends { get { return friends; } } + + public Status(int startTime, Friendship friendship) + { + /*this.startTime = startTime;*/ + this.endTime = startTime = (int) Utils.GetRandomValue(60*1.5f, 35, 3); + friends = friendship; + } } } \ No newline at end of file diff --git a/Assets/Scripts/PersonNode.cs b/Assets/Scripts/PersonNode.cs index 144ddc7..64a68d9 100644 --- a/Assets/Scripts/PersonNode.cs +++ b/Assets/Scripts/PersonNode.cs @@ -23,7 +23,8 @@ public class PersonNode : MonoBehaviour, IObserver public float KillHoldDuration = 2f; public RatioProgression xMarkLeft; public RatioProgression xMarkRight; - public Renderer bloodSplatter; + public Renderer bloodSplatter; + public Renderer shoutBubble; private List _links; private bool _highlighted = false; @@ -157,6 +158,8 @@ public class PersonNode : MonoBehaviour, IObserver //If dead -> set offline until all friends are aware, then add a big red X to profile pic if (_model.Alive) { + shoutBubble.gameObject.SetActive(_model.CurrentStatus != null); + SetColors(); } else From 0b59b643117e3dd420dbda82ea522f909c5dbe82 Mon Sep 17 00:00:00 2001 From: unknown Date: Sun, 16 Aug 2015 23:02:59 -0400 Subject: [PATCH 2/4] gravestone2 --- Assets/Resources/gravestoneBubble2.png | Bin 0 -> 27437 bytes Assets/Resources/gravestoneBubble2.png.meta | 55 ++++++++++++++++++++ 2 files changed, 55 insertions(+) create mode 100644 Assets/Resources/gravestoneBubble2.png create mode 100644 Assets/Resources/gravestoneBubble2.png.meta diff --git a/Assets/Resources/gravestoneBubble2.png b/Assets/Resources/gravestoneBubble2.png new file mode 100644 index 0000000000000000000000000000000000000000..d6fa7efcbee63070fb30223f36f9ea0321b159b0 GIT binary patch literal 27437 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 T{sZ{`2mn<@Ern`1oACbwv-L%{ literal 0 HcmV?d00001 diff --git a/Assets/Resources/gravestoneBubble2.png.meta b/Assets/Resources/gravestoneBubble2.png.meta new file mode 100644 index 0000000..5c1a05a --- /dev/null +++ b/Assets/Resources/gravestoneBubble2.png.meta @@ -0,0 +1,55 @@ +fileFormatVersion: 2 +guid: f0ae3145accc33c4f98e5ba66267789f +timeCreated: 1439780562 +licenseType: Free +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: From fdba06bdc8efe2f27e94b3146d55e83e252a23b2 Mon Sep 17 00:00:00 2001 From: RosimInc Date: Sun, 16 Aug 2015 23:06:37 -0400 Subject: [PATCH 3/4] Added statuses. Signed-off-by: RosimInc --- Assets/Scenes/Gameplay.unity | 16 ++++++++++++++++ Assets/Scripts/Models/Person.cs | 16 ++++++++-------- Assets/Scripts/Models/Status.cs | 8 ++++---- Assets/Scripts/PersonNode.cs | 2 +- 4 files changed, 29 insertions(+), 13 deletions(-) diff --git a/Assets/Scenes/Gameplay.unity b/Assets/Scenes/Gameplay.unity index c0e07ca..abac13f 100644 --- a/Assets/Scenes/Gameplay.unity +++ b/Assets/Scenes/Gameplay.unity @@ -1512,6 +1512,22 @@ Prefab: propertyPath: DetailsPanel value: objectReference: {fileID: 1197925315} + - target: {fileID: 11432906, guid: 136ea38d5deb4c9418beb879167d9b03, type: 2} + propertyPath: strategy.deathNoticing.modifier + value: .200000003 + objectReference: {fileID: 0} + - target: {fileID: 11432906, guid: 136ea38d5deb4c9418beb879167d9b03, type: 2} + propertyPath: levelOptions.NumPeople + value: 50 + objectReference: {fileID: 0} + - target: {fileID: 11432906, guid: 136ea38d5deb4c9418beb879167d9b03, type: 2} + propertyPath: levelOptions.AvgNumFriends + value: 8 + objectReference: {fileID: 0} + - target: {fileID: 11432906, guid: 136ea38d5deb4c9418beb879167d9b03, type: 2} + propertyPath: levelOptions.FriendshipLikeliness + value: .600000024 + objectReference: {fileID: 0} m_RemovedComponents: [] m_ParentPrefab: {fileID: 100100000, guid: 136ea38d5deb4c9418beb879167d9b03, type: 2} m_IsPrefabParent: 0 diff --git a/Assets/Scripts/Models/Person.cs b/Assets/Scripts/Models/Person.cs index a5cf0b3..8e50662 100644 --- a/Assets/Scripts/Models/Person.cs +++ b/Assets/Scripts/Models/Person.cs @@ -154,7 +154,7 @@ namespace DeathBook.Model AwarenessLevel = Mathf.Min(AwarenessLevel + strategyOutput, 1f); - if (Random.value < 0.3f) + if (Random.value < 0.2f) { CurrentStatus = new Status(GameLevel.GameTime, f); } @@ -170,23 +170,23 @@ namespace DeathBook.Model return !(time < ConnectionTime && time > DisconnectionTime); } - private void ShareStatus() + /*private void ShareStatus() { if (Random.value < 0.3f) { foreach (Friendship f in friendsList) f.Friend.ReceiveStatus(CurrentStatus); } - } + }*/ - public void ReceiveStatus(Status newStatus) + /*public void ReceiveStatus(Status newStatus) { Debug.Log("Oh noes, " + newStatus.Friends.Friend + " died..."); - /*foreach (Friendship f in friendsList) + foreach (Friendship f in friendsList) { if (f.Friend == newStatus.Friends) ; - }*/ - } + } + }*/ public void Update(float deltaTime) { @@ -194,7 +194,7 @@ namespace DeathBook.Model { if (CurrentStatus.EndTime < GameLevel.GameTime) { - ShareStatus(); + //ShareStatus(); CurrentStatus = null; } } diff --git a/Assets/Scripts/Models/Status.cs b/Assets/Scripts/Models/Status.cs index 4a7ce09..e01213e 100644 --- a/Assets/Scripts/Models/Status.cs +++ b/Assets/Scripts/Models/Status.cs @@ -4,8 +4,8 @@ namespace DeathBook.Model { public class Status { - /*private int startTime; - public int StartTime { get { return startTime; } }*/ + private int startTime; + public int StartTime { get { return startTime; } } private int endTime; public int EndTime { get { return endTime; } } private Friendship friends; @@ -13,8 +13,8 @@ namespace DeathBook.Model public Status(int startTime, Friendship friendship) { - /*this.startTime = startTime;*/ - this.endTime = startTime = (int) Utils.GetRandomValue(60*1.5f, 35, 3); + this.startTime = startTime; + this.endTime = startTime + (int) Utils.GetRandomValue(700, 250, 3); friends = friendship; } } diff --git a/Assets/Scripts/PersonNode.cs b/Assets/Scripts/PersonNode.cs index 64a68d9..56c4fcf 100644 --- a/Assets/Scripts/PersonNode.cs +++ b/Assets/Scripts/PersonNode.cs @@ -8,7 +8,7 @@ using System; [RequireComponent(typeof(Collider))] public class PersonNode : MonoBehaviour, IObserver { - private const float UpdateFrequency = 0.5f; + private const float UpdateFrequency = 0.4f; private float time = 0; public Action OnClicked; From 8cededcf4902f4249b50eef14e154b228984da4d Mon Sep 17 00:00:00 2001 From: RosimInc Date: Sun, 16 Aug 2015 23:37:17 -0400 Subject: [PATCH 4/4] Added full shout bubbles, generated random levels. Signed-off-by: RosimInc --- Assets/Resources/Materials/ShoutBubble.mat | 2 +- Assets/Scripts/Models/LevelGenerator.cs | 2 +- Assets/Scripts/Models/Person.cs | 3 ++- Assets/Scripts/Timer.cs | 14 +++++++++----- 4 files changed, 13 insertions(+), 8 deletions(-) diff --git a/Assets/Resources/Materials/ShoutBubble.mat b/Assets/Resources/Materials/ShoutBubble.mat index 05294d6..53e7617 100644 --- a/Assets/Resources/Materials/ShoutBubble.mat +++ b/Assets/Resources/Materials/ShoutBubble.mat @@ -18,7 +18,7 @@ Material: first: name: _MainTex second: - m_Texture: {fileID: 2800000, guid: 856ca562f724d934e89bca0999754c23, type: 3} + m_Texture: {fileID: 2800000, guid: f0ae3145accc33c4f98e5ba66267789f, type: 3} m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} data: diff --git a/Assets/Scripts/Models/LevelGenerator.cs b/Assets/Scripts/Models/LevelGenerator.cs index 3a1c584..04ff457 100644 --- a/Assets/Scripts/Models/LevelGenerator.cs +++ b/Assets/Scripts/Models/LevelGenerator.cs @@ -76,7 +76,7 @@ namespace DeathBook.Model for (int i = 0; i < totalCount; i++) { p1 = people[i]; - missing = avgConnections - p1.FriendCount; // TODO Add randomness + missing = Mathf.Clamp((int) Utils.GetRandomValue(avgConnections, avgConnections*1.2f, 3), 1, 100) - p1.FriendCount; if (missing <= 0) continue; diff --git a/Assets/Scripts/Models/Person.cs b/Assets/Scripts/Models/Person.cs index 9fd0594..7c5c8c7 100644 --- a/Assets/Scripts/Models/Person.cs +++ b/Assets/Scripts/Models/Person.cs @@ -127,6 +127,7 @@ namespace DeathBook.Model //Debug.Log("Person " + id + " died!"); alive = false; + CurrentStatus = null; if (GameLevel.tutorialInt == 4) GameLevel.tutorialInt = 5; @@ -202,7 +203,7 @@ namespace DeathBook.Model if (!Alive) return; - int time = LevelManager.Instance.GameLevel.DayTime; + int time = GameLevel.DayTime; bool isOnline = IsOnline(time); diff --git a/Assets/Scripts/Timer.cs b/Assets/Scripts/Timer.cs index 2e7ba90..7addf64 100644 --- a/Assets/Scripts/Timer.cs +++ b/Assets/Scripts/Timer.cs @@ -6,12 +6,16 @@ using UnityEngine.UI; public class Timer : MonoBehaviour { - public Text TimerText; - - + public Text TimerText; + int lastTime = -1; void Update() - { - TimerText.text = Utils.GetTimeString(LevelManager.Instance.GameLevel.DayTime); + { + int time = LevelManager.Instance.GameLevel.DayTime / 30; + if (time != lastTime) + { + TimerText.text = Utils.GetTimeString(time * 30); + lastTime = time; + } } }