Inheritance: BreakableObject
Example #1
0
 void Start()
 {
     stdAttributes = this.GetComponent <Civilian>();
     spRender      = this.GetComponent <SpriteRenderer>();
     Green         = Resources.Load <Sprite>("Art/SatGreen");
     Red           = Resources.Load <Sprite>("Art/SatRed");
 }
Example #2
0
        public async Task Resync(bool skipTime)
        {
            if (((DateTime.Now - LastSyncTime).Seconds < 5 || IsCurrentlySyncing) && !skipTime)
            {
                MessageBox.Show($"You must wait 5 seconds before the last sync time \nSeconds to wait: {5 - (DateTime.Now - LastSyncTime).Seconds}", "DispatchSystem", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }

            LastSyncTime       = DateTime.Now;
            IsCurrentlySyncing = true;

            if (string.IsNullOrWhiteSpace(firstNameView.Text) || string.IsNullOrWhiteSpace(lastNameView.Text))
            {
                return;
            }

            Tuple <NetRequestResult, Civilian> result = await Program.Client.TryTriggerNetFunction <Civilian>("GetCivilian", data.First, data.Last);

            if (result.Item2 != null)
            {
                Invoke((MethodInvoker) delegate
                {
                    data = result.Item2;
                    UpdateCurrentInformation();
                });
            }
            else
            {
                MessageBox.Show("That name doesn't exist in the system!", "DispatchSystem", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }

            IsCurrentlySyncing = false;
        }
Example #3
0
        private async Task UpdateCivilian(NetRequestHandler handler, object[] objs)
        {
            if (!Config.HasPerm(handler.IP, Permission.Civ))
            {
                return;
            }

            Civilian civilian = (Civilian)objs[0];

            if (civilian == null)
            {
                Config.Log.WriteLine("UpdatedCivilianLog", handler.IP, Log.Status.Failed, "null Civilian");
            }
            else if (Civilians.Value.ContainsKey(civilian.ID))
            {
                List <Ticket> tickets = Civilians.Value[civilian.ID].Tickets;

                Civilians.Value[civilian.ID]         = civilian;
                Civilians.Value[civilian.ID].Tickets = tickets;

                Config.Log.WriteLine("UpdatedCivilianLog", handler.IP, Log.Status.Succeeded, civilian);
            }
            else
            {
                Civilians.Value.Add(civilian);

                Config.Log.WriteLine("SavedCivilianLog", handler.IP, Log.Status.Succeeded, civilian);
            }

            await Task.FromResult(0);
        }
Example #4
0
        private Vector2 GetAvoidVector(Civilian npc, List <Entity> entities)
        {
            var avoid = new Vector2();
            var count = 0;

            foreach (Entity o in entities)
            {
                var dir  = (npc.Position - o.Position);
                var dist = dir.Length();

                if (dist < 20f && dist > 0)
                {
                    avoid += dir / (float)Mathf.Pow(dist, 5);
                    count++;
                }
            }

            if (count != 0)
            {
                avoid /= count;
            }

            if (avoid.Length() > 0)
            {
                avoid.Normalize();
            }
            else
            {
                avoid = Vector2.Zero;
            }

            return(avoid);
        }
Example #5
0
    private void attack()
    {
        attacking           = true;
        attackCooldownTimer = attackCooldown;
        midSection_attack.SetActive(true);
        head_attack.SetActive(true);
        midSection.SetActive(false);
        head.SetActive(false);

        Collider2D[] colliders;
        Vector2      attackPoint  = new Vector2();
        Vector3      attackPoint3 = transform.position + (transform.right * 0.75f);

        attackPoint.x = attackPoint3.x;
        attackPoint.y = attackPoint3.y;
        //transform.position = attackPoint3;
        if ((colliders = Physics2D.OverlapCircleAll(attackPoint, 0.5f)).Length > 1)
        {
            foreach (var collider in colliders)
            {
                if (collider.transform.GetComponent <Player>() != null)
                {
                    Player player = (Player)collider.transform.GetComponent <Player>();
                    player.induceRage(10);
                }
                if (collider.transform.GetComponent <Civilian>() != null)
                {
                    Civilian civilian = (Civilian)collider.transform.GetComponent <Civilian>();
                    civilian.damage(50);
                }
            }
        }
    }
Example #6
0
        private async Task <object> TicketCivilian(NetRequestHandler handler, object[] objs)
        {
            if (!Config.HasPerm(handler.IP, Permission.Police))
            {
                return(false);
            }

            uint civilianID = (uint)objs[0];

            if (Civilians.Value.ContainsKey(civilianID))
            {
                Civilian civilian = Civilians.Value[civilianID];
                Ticket   ticket   = (Ticket)objs[1];

                civilian.Tickets.Add(ticket);
                Config.Log.WriteLine("TicketedCivilianLog", handler.IP, Log.Status.Succeeded, civilianID.ToSplitID());
                return(true);
            }

            Config.Log.WriteLine("TicketedCivilianLog", handler.IP, Log.Status.Failed, civilianID.ToSplitID());

            await Task.FromResult(0);

            return(false);
        }
Example #7
0
        private Vector2 GetAvoidVector(Civilian npc, List <Entity> entities)
        {
            var avoidVector     = new Vector2();
            var nearbyCivilians = 0;

            foreach (Entity o in entities)
            {
                var dir  = (npc.Position - o.Position);
                var dist = dir.Length();

                if (dist < 20f && dist > 0)
                {
                    avoidVector += dir / (float)Mathf.Pow(dist, 5);
                    nearbyCivilians++;
                }
            }

            if (nearbyCivilians != 0)
            {
                avoidVector /= nearbyCivilians;
            }

            if (avoidVector.Length() > 0)
            {
                avoidVector.Normalize();
            }
            else
            {
                avoidVector = Vector2.Zero;
            }

            return(avoidVector);
        }
Example #8
0
        public Navigator(GameState game, Civilian civilian)
        {
            this.game     = game;
            this.civilian = civilian;

            this.initializePosition();
        }
        private async Task AddNote(ConnectedPeer sender, object[] args)
        {
            await Task.FromResult(0);

            if (CheckAndDispose(sender))
            {
                return;
            }
#if DEBUG
            Log.WriteLine($"[{sender.RemoteIP}] Add Civilian note Request Recieved");
#else
            Log.WriteLineSilent($"[{sender.RemoteIP}] Add Civilian note Request Recieved");
#endif

            string[] name = { (string)args[0], (string)args[1] };
            string   note = (string)args[2];

            Civilian civ = Common.GetCivilianByName(name[0], name[1]);

            if (civ != null)
            {
#if DEBUG
                Log.WriteLine($"[{sender.RemoteIP}] Adding the note \"{note}\" to Civilian {civ.First} {civ.Last}");
#else
                Log.WriteLineSilent($"[{sender.RemoteIP}] Adding the note \"{note}\" to Civilian {civ.First} {civ.Last}");
#endif
                civ.Notes.Add(note);
            }
            else
#if DEBUG
            { Log.WriteLine($"[{sender.RemoteIP}] Civilian not found, not adding note..."); }
#else
            { Log.WriteLineSilent($"[{sender.RemoteIP}] Civilian not found, not adding note..."); }
#endif
        }
Example #10
0
        private async Task AddNote(ConnectedPeer sender, BareGuid id, string note)
        {
            await Task.FromResult(0);

#if DEBUG
            Log.WriteLine($"[{sender.RemoteIP}] Add Civilian note Request Received");
#else
            Log.WriteLineSilent($"[{sender.RemoteIP}] Add Civilian note Request Received");
#endif

            Civilian civ = DispatchSystem.Civs.FirstOrDefault(x => x.Id == id); // finding the civ from the id

            if (civ != null)
            {
#if DEBUG
                Log.WriteLine($"[{sender.RemoteIP}] Adding the note \"{note}\" to Civilian {civ.First} {civ.Last}");
#else
                Log.WriteLineSilent($"[{sender.RemoteIP}] Adding the note \"{note}\" to Civilian {civ.First} {civ.Last}");
#endif
                civ.Notes.Add(note); // adding the note for the civilian
            }
            else
#if DEBUG
            { Log.WriteLine($"[{sender.RemoteIP}] Civilian not found, not adding note..."); }
#else
            { Log.WriteLineSilent($"[{sender.RemoteIP}] Civilian not found, not adding note..."); }
#endif
        }
Example #11
0
 void Start()
 {
     stdAttributes = this.GetComponent<Civilian>();
     spRender = this.GetComponent<SpriteRenderer>();
     Green = Resources.Load<Sprite>("Art/SatGreen");
     Red =  Resources.Load<Sprite>("Art/SatRed");
 }
Example #12
0
        void SetUp()
        {
            //Sets up the simulation.
            mapSizeX = 100;
            mapSizeY = 25;
            int    numCops      = 5;
            int    numRobbers   = 5;
            int    numCivilians = 10;
            Random rnd          = new Random();

            List <Person> citizens = new List <Person>();
            List <Robber> prison   = new List <Robber>();

            //Populate the City.
            for (int i = 0; i < numCops; i++)
            {
                Cop cop = new Cop(rnd.Next(mapSizeX), rnd.Next(mapSizeY));
                citizens.Add(cop);
            }
            for (int i = 0; i < numRobbers; i++)
            {
                Robber robber = new Robber(rnd.Next(mapSizeX), rnd.Next(mapSizeY));
                citizens.Add(robber);
            }
            for (int i = 0; i < numCivilians; i++)
            {
                Civilian civilian = new Civilian(rnd.Next(mapSizeX), rnd.Next(mapSizeY));
                citizens.Add(civilian);
            }

            Simulate(citizens, prison);
        }
Example #13
0
        public Navigator(GameState game, Civilian civilian)
        {
            this.game = game;
            this.civilian = civilian;

            this.initializePosition();
        }
Example #14
0
        public static async void InitializeEmergency(string handle)
        {
            Player p = GetPlayerByHandle(handle);

            if (GetEmergencyCall(handle) != null)
            {
                SendMessage(p, "DispatchSystem", new[] { 0, 0, 0 }, "You already have a 911 call!");
                return;
            }

            if (GetCivilian(handle) != null)
            {
                Civilian civ = GetCivilian(handle);

                if (server.ConnectedDispatchers.Length == 0)
                {
                    SendMessage(p, "DispatchSystem", new[] { 0, 0, 0 }, "It seems like there is no connected dispatchers at this moment!");
                    return;
                }

                EmergencyCall call;
                currentCalls.Add(call = new EmergencyCall(p.Identifiers["ip"], $"{civ.First} {civ.Last}"));
                SendMessage(p, "Dispatch911", new[] { 255, 0, 0 }, "Please wait for a dispatcher to respond");
                foreach (var peer in server.ConnectedDispatchers)
                {
                    await peer.TriggerNetEvent("911alert", civ, call);
                }
            }
            else
            {
                SendMessage(p, "DispatchSystem", new[] { 0, 0, 0 }, "You must set your name before start a 911 call");
            }
        }
Example #15
0
        public override void OnEnter(Civilian theCivilian)
        {
            transitions = new List <Transition>();

            civilian  = theCivilian;
            moveSpeed = civilian.moveSpeed * 2;
            moveRate  = civilian.moveRate / 2;
        }
Example #16
0
    public void SpawnRandomCivilian()
    {
        List <Route> RandomRoutes;
        Random       random = new Random();
        Transform    spawn_pos;
        int          count = RoutesManager.Instance.Routes.Count;

        /* Selects random routes from RouteManager */
        RandomRoutes = RoutesManager.Instance.GetChilds()
                       .OrderBy(x => Random.Range(0, count))
                       .Take(SpawnNumber)
                       .ToList();

        /* Initlaize new route values and spawn the civilian */
        foreach (Route route in RandomRoutes)
        {
            if (!route.Occupied)
            {
                /* Randomlly pick a civilian */
                Civilian tmp = Civilian [Random.Range(0, 2)];

                /* Mark the route as occupied */
                route.Occupied = true;

                /* Assign the random route the civilian will take*/
                tmp.route = route;

                /* Assign a random patrol speed to the civilian */
                tmp.PatrolSpeed   = Random.Range(0, MaxPatrolSpeed);
                tmp.PauseDuration = Random.Range(0, 1f);

                /* Spawn position will be the first waypoint in the route */
                spawn_pos = route.Waypoints[0];

                /* Spawn civilian at destination as the child of this class */
                Civilian child = null;
                try
                {
                    child = Instantiate(tmp, spawn_pos.position, spawn_pos.rotation) as Civilian;
                    if (child != null)
                    {
                        child.transform.parent = transform;
                    }
                    else
                    {
                        route.Occupied = false;
                    }
                } catch (System.Exception)
                {
                    if (child != null)
                    {
                        child.transform.parent = transform;
                    }
                    route.Occupied = false;
                }
            }
        }
    }
Example #17
0
        public CivView(Civilian civData)
        {
            Icon = Icon.ExtractAssociatedIcon("icon.ico");
            InitializeComponent();

            data = civData;

            UpdateCurrentInformation();
        }
Example #18
0
        private static async Task Alert911(ConnectedPeer peer, Civilian civ, EmergencyCall call)
        {
            await Task.FromResult(0);

            mainWindow.Invoke((MethodInvoker) delegate
            {
                new Accept911(civ, call).Show();
            });
        }
Example #19
0
        public override void OnEnter(Civilian theCivilian)
        {
            civilian = theCivilian;

            transitions = new List <Transition>
            {
                //new LockDownTransition(civilian)
            };
        }
Example #20
0
        public CivilianController(GameState game, Civilian civilian)
        {
            this.Game     = game;
            this.Civilian = civilian;

            this.Navigator = new Navigator(game, civilian);

            this.start <IdleWalkBehaviour>();
        }
        public static Civilian Birth(Civilian a, Civilian b)
        {
            Civilian c = new Civilian();

            c.topo = Crossing(a.topo, b.topo);
            c.topo.Mutation();
            c.pheno = new Phenotype(c.topo);
            return(c);
        }
    // Update is called once per frame
    public override void Update()
    {
        base.Update();

        if (Vector3.SqrMagnitude(transform.position - Map.Instance.Cursor.transform.position) < nerfDistanceSquare)
        {
            RunSpeed = 0;
        }
        else
        {
            RunSpeed = baseRunSpeed;
        }

        var distanceCiv    = Vector3.SqrMagnitude(civLocation - transform.position);
        var distanceCursor = Vector3.SqrMagnitude(Map.Instance.Cursor.transform.position - transform.position);

        if (distanceCursor > cursorToleranceSquare || distanceCiv > 100 * 100)
        {
            lover = null;
        }

        if (Health <= 0)
        {
            Splat();

            if (Time.realtimeSinceStartup - lastDeathScream > 3)
            {
                lastDeathScream = Time.realtimeSinceStartup;
                int index = Random.Range(0, DeathSounds.Length);
                audio.volume = 0.3f;
                audio.PlayOneShot(DeathSounds[index]);
            }

            collider.enabled = false;
            Map.Instance.aliveZombies--;
            GameObject.Destroy(gameObject);
            return;
        }

        var inf = Map.Instance.Cursor.transform.position;

        if (lover != null)
        {
            inf = civLocation;
        }
        inf.y = 0;
        AddInfluence(inf, zombieAttraction);
        maxInfluenceStrength *= focus;

        Vector3 normalizedVelocity = (influence - rigidbody.position).normalized;

        rigidbody.velocity = normalizedVelocity * RunSpeed;
        transform.forward  = normalizedVelocity;

        Atrophy();
    }
    private void OnTriggerEnter(Collider t)
    {
        if (!t.CompareTag("Civilian"))
        {
            return;
        }

        lover       = t.GetComponent <Civilian>();
        civLocation = lover.transform.position;
    }
Example #24
0
    public override void TargetedBy(Civilian shooter)
    {
        if (_target == null || _target != shooter)
        {
            _target = shooter;

            EmotionalState = NpcEmotion.Aggresive;
            State          = NpcPhysicalState.Attacking;
        }
    }
            public void Evolution(System.IO.StreamWriter file)
            {
                Civilian a = Pick(100);
                Civilian b = Pick(100);
                Civilian x = Birth(a, b);

                this.pop[0] = x;
                x.evaluate(file);
                Array.Sort(pop);
            }
Example #26
0
        public CivView(Civilian civData)
        {
            Icon = Icon.ExtractAssociatedIcon("icon.ico");
            InitializeComponent();

            data = civData;

            SkinManager.AddFormToManage(this);
            UpdateCurrentInformation();
        }
Example #27
0
        static void Main(string[] args)
        {
            Civilian        visitor1        = new Civilian("Антон Бурмистров", "05.06.2000", "М", "M4A1", true);
            Military        visitor2        = new Military("Максим Пентешихин", "15.05.1995", "М", "AK-47");
            Civilian        visitor3        = new Civilian("Анна Шеховцова", "24.02.1988", "Ж", "USP", false);
            ShootingGallery shootingGallery = new ShootingGallery();

            shootingGallery.GetGun(visitor1);
            shootingGallery.GetGun(visitor2);
            shootingGallery.GetGun(visitor3);
        }
Example #28
0
 void OnTriggerEnter(Collider col)                                                   //when something enters the trigger
 {
     if (col.GetComponent <Civilian>())                                              //if the collider is a civilian...
     {
         Civilian civ = col.GetComponent <Civilian>();
         if (civ.currentState == State.ALERTED || civ.currentState == State.WITNESS) //and if they are in a panicked state...
         {
             Destroy(col.gameObject);                                                //"save" the civilian
         }
     }
 }
Example #29
0
 private void CheckSensors()
 {
     if (sensor.Contact != null)
     {
         if (sensor.Contact.GetComponentInParent <Civilian>() != null)
         {
             Civilian civilian = sensor.Contact.GetComponentInParent <Civilian>();
             civilian.PullOver(transform.position);
         }
     }
 }
Example #30
0
 public void CivilianKilled(Civilian c)
 {
     if (_localPopulation.Contains(c))
     {
         _localPopulation.Remove(c);
         if (LocalPopulation == 0 && _assignedMarshal != null)
         {
             _assignedMarshal.ReturnHome();
         }
     }
 }
Example #31
0
        public Accept911(Civilian requester, EmergencyCall call)
        {
            Icon = Icon.ExtractAssociatedIcon("icon.ico");
            InitializeComponent();

            civ       = requester;
            this.call = call;

            information.Text = $"Incoming call from {requester.First} {requester.Last} for an UNKNOWN reason...";
            SetForegroundWindow(Handle);
        }
Example #32
0
        public void KillCiv(Civilian civ)
        {
            CurrentGameState.Dradis.RemoveComponent(civ);
            var modifiedCiv = CurrentGameState.Civilians.FindIndex(x => x.PermanentDesignation == civ.PermanentDesignation);

            if (modifiedCiv == -1)
            {
                return;
            }
            CurrentGameState.Civilians[modifiedCiv].Status = ComponentStatus.Destroyed;
        }
Example #33
0
File: Hole.cs Project: aeveis/GGJ16
	public IEnumerator StartCivFall(Civilian civ)
	{
		//PlayerController.Instance.m_MoveIsBlocked = true;
		//m_playerPosition =  PlayerController.Instance.transform.position + (transform.position - PlayerController.Instance.transform.position).normalized * 0.5f;
		//yield return null;
		civ.Stop();
		SoundManager.instance.PlaySingle(fallSound);
		float time = 0.0f;
		while(time < 1.0f)
		{
			time += Time.deltaTime;
			civ.transform.localScale = Vector3.one * (1.0f - time);
			//PlayerController.Instance.transform.position = m_playerPosition;
			yield return null;
		}
		civ.gameObject.SetActive (false);

	}
Example #34
0
	public void AddCivilian (Civilian civilian)
	{
		mut.WaitOne();
		if(!civilian.isInCrowd && civilian.isAlive)
		{
			if(crowd.Count <= 0)
			{
				crowd.Add (new List<Civilian> ());
			}
			if(crowd [crowd.Count - 1].Count >= maxInCircle) //Jeśli krąg jest zapełniony dodaj, dodaj nowy krąg
				crowd.Add (new List<Civilian> ());

			List<Civilian> currentCircle = crowd [crowd.Count - 1];

			currentCircle.Add (civilian);
			civilian.distanceToPlayer = baseDistance * crowd.Count;
			civilian.state = Civilian.CivilState.FollowingPlayer;
			civilian.offset = new Vector3(Random.Range (-baseDistance * crowd.Count, baseDistance * crowd.Count), 0, Random.Range (-baseDistance * crowd.Count, baseDistance * crowd.Count));
			civilian.isInCrowd = true;
		}
		mut.ReleaseMutex ();
	}
Example #35
0
	public void removeCivilian(Civilian civilian)
	{
		mut.WaitOne();
		foreach (List<Civilian> circle in crowd) 
		{
			foreach (Civilian person in circle)
			{
				if(person.isAlive == civilian)
				{
					circle.Remove(civilian);
					NewGHhostCivilian ();
					return;
				}
			}
		}
		mut.ReleaseMutex ();
	}