mirror of
https://github.com/ConjureETS/DeathBook.git
synced 2026-03-24 04:20:58 +00:00
Implemented color changes for friendship links
Online/offline functionality tested and running Signed-off-by: RosimInc <rosim_inc@hotmail.com>
This commit is contained in:
parent
4d41e5948b
commit
08f85edc51
@ -1101,15 +1101,15 @@ Prefab:
|
||||
objectReference: {fileID: 724043967}
|
||||
- target: {fileID: 11432906, guid: 136ea38d5deb4c9418beb879167d9b03, type: 2}
|
||||
propertyPath: levelOptions.NumPeople
|
||||
value: 2
|
||||
value: 50
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 11432906, guid: 136ea38d5deb4c9418beb879167d9b03, type: 2}
|
||||
propertyPath: levelOptions.AvgNumFriends
|
||||
value: 1
|
||||
value: 8
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 11432906, guid: 136ea38d5deb4c9418beb879167d9b03, type: 2}
|
||||
propertyPath: levelOptions.FriendshipLikeliness
|
||||
value: 1
|
||||
value: .600000024
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents: []
|
||||
m_ParentPrefab: {fileID: 100100000, guid: 136ea38d5deb4c9418beb879167d9b03, type: 2}
|
||||
|
||||
@ -9,8 +9,10 @@ public class Link : MonoBehaviour, IObserver
|
||||
private float highlightAlpha = 0.8f;
|
||||
private float defaultAlpha = 0.5f;
|
||||
|
||||
private Color currentDefaultColor;
|
||||
private Color currentHighlightColor;
|
||||
private Color color;
|
||||
|
||||
private Color baseColor = new Color(0.3f, 0.7f, 1f);
|
||||
private Color inactiveColor = new Color(0.15f, 0.15f, 0.05f);
|
||||
|
||||
private static float defaultScale = 0.03f;
|
||||
private float hightlightScale = 0.2f;
|
||||
@ -40,7 +42,7 @@ public class Link : MonoBehaviour, IObserver
|
||||
model.Subscribe(this);
|
||||
|
||||
//Make it between 0.1 and 0.4
|
||||
GetColors(Model.Awareness);
|
||||
GetColors();
|
||||
hightlightScale = Model.Importance * 0.3f + 0.1f;
|
||||
Highlight(false);
|
||||
}
|
||||
@ -66,8 +68,10 @@ public class Link : MonoBehaviour, IObserver
|
||||
|
||||
public void Notify()
|
||||
{
|
||||
GetColors(Model.Awareness);
|
||||
GetColors();
|
||||
UpdateBeam();
|
||||
if (Model.KillCount == 2)
|
||||
hightlightScale = 0.1f;
|
||||
//TODO SR
|
||||
}
|
||||
|
||||
@ -115,22 +119,14 @@ public class Link : MonoBehaviour, IObserver
|
||||
UpdateBeam();
|
||||
}
|
||||
|
||||
private void GetColors(float level)
|
||||
private void GetColors()
|
||||
{
|
||||
//If level is 0.0, green [0,1,0].
|
||||
//If level is 0.5, yellow [1,1,0].
|
||||
//If level is 1.0, red [1,0,0].
|
||||
|
||||
float r = 1f;
|
||||
float g = 1f;
|
||||
|
||||
if (level < 0.5f)
|
||||
r = Mathf.Lerp(0, 1, level*2);
|
||||
if (Model.KillCount == 0)
|
||||
color = baseColor;
|
||||
else if (Model.KillCount == 2)
|
||||
color = inactiveColor;
|
||||
else
|
||||
g = Mathf.Lerp(1, 0, level * 2 - 1);
|
||||
|
||||
currentDefaultColor = new Color(r, g, 0f, defaultAlpha);
|
||||
currentHighlightColor = new Color(r, g, 0f, highlightAlpha);
|
||||
color = new Color(1f, Mathf.Lerp(1, 0, Model.Awareness), 0f);
|
||||
}
|
||||
|
||||
private void UpdateBeam()
|
||||
@ -138,6 +134,8 @@ public class Link : MonoBehaviour, IObserver
|
||||
float width = isHighlighted ? hightlightScale : defaultScale;
|
||||
BeamLine.SetWidth(width, width);
|
||||
|
||||
_renderer.material.SetColor("_TintColor", isHighlighted ? currentHighlightColor : currentDefaultColor);
|
||||
color.a = isHighlighted ? highlightAlpha : defaultAlpha;
|
||||
|
||||
_renderer.material.SetColor("_TintColor", color);
|
||||
}
|
||||
}
|
||||
|
||||
@ -27,6 +27,12 @@ namespace DeathBook.Model
|
||||
this.link = link;
|
||||
}
|
||||
|
||||
public void NotifyFriendWasKilled()
|
||||
{
|
||||
Link.KillCount++;
|
||||
Self.NotifyFriendWasKilled(this);
|
||||
}
|
||||
|
||||
public void Update(float deltaTime)
|
||||
{
|
||||
if (noticedDeath)
|
||||
|
||||
@ -20,6 +20,13 @@ namespace DeathBook.Model
|
||||
set { awareness = value; NotifyObservers(); }
|
||||
}
|
||||
|
||||
private int killCount = 0; //Number of people dead in this relationship
|
||||
public int KillCount
|
||||
{
|
||||
get { return killCount; }
|
||||
set { killCount = value; NotifyObservers(); }
|
||||
}
|
||||
|
||||
public FriendshipLink(Person p1, Person p2, float importance)
|
||||
{
|
||||
friend1 = p1;
|
||||
|
||||
@ -87,7 +87,7 @@ namespace DeathBook.Model
|
||||
Debug.Log("Person " + id + " died!");
|
||||
alive = false;
|
||||
foreach (Friendship f in friendsList)
|
||||
f.Friend.NotifyFriendWasKilled(f.Other);
|
||||
f.Other.NotifyFriendWasKilled();
|
||||
NotifyObservers();
|
||||
|
||||
return true;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user