summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Drawable.cs4
-rw-r--r--OnekoLocal.cs10
2 files changed, 9 insertions, 5 deletions
diff --git a/Drawable.cs b/Drawable.cs
index 67e4344..214fc0d 100644
--- a/Drawable.cs
+++ b/Drawable.cs
@@ -21,10 +21,12 @@ abstract class Drawable : IDisposable
public Drawable() => Drawables.Add(this);
+ public virtual int DrawSort => (int)Position.Y;
+
public static void DrawAll()
{
float delta = Raylib.GetFrameTime();
- foreach (Drawable drawable in Drawables.OrderBy(d => d.Position.Y + d.DrawOrder*1000)) {
+ foreach (Drawable drawable in Drawables.OrderBy(d => d.DrawSort + d.DrawOrder*1000)) {
drawable?.Update(delta);
if (drawable == null || !drawable.Visible) continue;
drawable?.Draw();
diff --git a/OnekoLocal.cs b/OnekoLocal.cs
index 6c3c2df..df54ff1 100644
--- a/OnekoLocal.cs
+++ b/OnekoLocal.cs
@@ -20,6 +20,8 @@ class OnekoLocal : Oneko
int Frame = 0;
int FrameCounter = 0;
+ public override int DrawSort => (int)(Position.Y - (Size.Y/2.5f));
+
public OnekoLocal() : base()
{
Instance ??= this;
@@ -214,8 +216,8 @@ class OnekoLocal : Oneko
public override int GetPriority()
{
//If feeling playful, chase another cat!
- if (Victim != null && LastChase.AddSeconds(Energy > 0.5 ? 25 : 15) > DateTime.Now) return 80;
- if (Playfullness < 0.5f || AllNekos.Count < 2 || LastChase.AddMinutes(Energy > 0.5 ? 1 : 3) > DateTime.Now) return -1;
+ if (Victim != null && LastChase.AddSeconds(Energy > 0.5 ? 24 : 12) > DateTime.Now) return 80;
+ if (Playfullness < 0.7f || AllNekos.Count < 2 || LastChase.AddMinutes(Energy > 0.5 ? 2 : 5) > DateTime.Now) return -1;
Victim = AllNekos.Where(neko => neko != Neko).MinBy(neko => Random.Shared.NextSingle());
if (Victim != null) return 80;
return -1;
@@ -231,7 +233,7 @@ class OnekoLocal : Oneko
if (Victim is null) return;
Playfullness -= delta/40f;
Energy -= delta/60f;
- Neko.MoveTowardsPosition(Victim.Position + Raymath.Vector2Rotate(Directions.Down, DateTime.Now.Second+RandOffset)*24);
+ Neko.MoveTowardsPosition(Victim.Position + Raymath.Vector2Rotate(Directions.Down, DateTime.Now.Second+RandOffset)*28);
}
}
@@ -272,7 +274,7 @@ class OnekoLocal : Oneko
if (MouseToChase is null || !MouseToChase.Visible) return;
MousePosition = MouseToChase.Position;
- Neko.MoveTowardsPosition(MousePosition);
+ Neko.MoveTowardsPosition(MousePosition + (Raymath.Vector2Rotate(Directions.Down, Id*2f) * 20f));
Energy -= delta/60f;
Playfullness -= delta/30f;