public static void Spawn(int x, int y, GameObject prefab) { World.Grid grid = World.Instance.GetGrid(); World.Cell cell = grid.GetCell(x, y); if (!cell.IsBlocked) { //Vector3 position = new Vector3(x, heightOffset, y); GameObject spawn = Instantiate <GameObject>(prefab); spawn.transform.position = spawn.transform.position; SynchronizedActor actor = spawn.GetComponent <SynchronizedActor>(); if (actor != null) { Entity entity = null; if (actor.tag == "Player") { entity = new Player(x, y, EntityStatistics.GetRandomPlayerStats()); } else if (actor.tag == "Enemy") { MonsterConfig config = spawn.GetComponent <MonsterConfig>(); entity = new Monster(x, y, config.GetStats()); } if (entity != null) { actor.InitActor(entity); } } } }
//int[] Stat Type Enum //int[] Stat Type //float[] Stat Values public static EntityStatistics FromNetwork(Tuple <int[], int[], string[]> stats) { EntityStatistics e = new EntityStatistics(); e.InitializeStatDictionary(); //Creates the Dictionary for us for (int i = 0; i < stats.Item1.Length; i++) { CardPlayerStat stat = null; if ((CardPlayerStatDataType)stats.Item2[i] == CardPlayerStatDataType.Int) { stat = new CardPlayerStat <int>(int.Parse(stats.Item3[i]), CardPlayerStatDataType.Int); } else if ((CardPlayerStatDataType)stats.Item2[i] == CardPlayerStatDataType.Float) { stat = new CardPlayerStat <float>(float.Parse(stats.Item3[i]), CardPlayerStatDataType.Float); } else if ((CardPlayerStatDataType)stats.Item2[i] == CardPlayerStatDataType.String) { stat = new CardPlayerStat <string>(stats.Item3[i], CardPlayerStatDataType.String); } if (stat != null) { Debug.Log("Adding Stats From network: " + (CardPlayerStatType)stats.Item1[i] + " -> " + stat.GetValue()); e.Stats.Add((CardPlayerStatType)stats.Item1[i], stat); } } return(e); }
private void OnPlayerStatsChanged() { EntityStatistics stats = PlayerActor.Stats; StatsBar.Instance.SetStat("HP", stats.Health.ToString()); StatsBar.Instance.SetStat("ENERGY", stats.Energy.ToString()); StatsBar.Instance.SetStat("ATTACK", String.Format("{0:P0}", stats.Attack)); StatsBar.Instance.SetStat("SPEED", stats.SpeedString); }
public EntityStatistics Clone() { EntityStatistics res = new EntityStatistics(Name); res.Attack = Attack; res.Health = Health; res.MoveTime = MoveTime; return(res); }
public static EntityStatistics GetRandomPlayerStats() { EntityStatistics stats = new EntityStatistics("The Astronaut"); stats.Energy = Random.Range(90, 140); stats.Health = Random.Range(15, 20); stats.Attack = Random.Range(0.10f, 0.25f); stats.MoveTime = Random.Range(8, 12); return(stats); }
static EntityStatistics() { MutantWalker = new EntityStatistics("Walker"); MutantWalker.Attack = Random.Range(0.25f, 0.40f); MutantWalker.Health = Random.Range(15, 25); MutantWalker.MoveTime = Random.Range(11, 13); MutantHeavy = new EntityStatistics("Heavy"); MutantHeavy.Attack = Random.Range(0.10f, 0.25f); MutantHeavy.Health = Random.Range(30, 50); MutantHeavy.MoveTime = Random.Range(13, 16); MutantStalker = new EntityStatistics("Hunter"); MutantStalker.Attack = Random.Range(0.40f, 0.50f); MutantStalker.Health = Random.Range(10, 16); MutantStalker.MoveTime = Random.Range(7, 9); }
public async Task SimpleProjectionsAsync() { var transformer = new CustomTransformer(); await(Sfi.EvictQueriesAsync()); Sfi.Statistics.Clear(); const string queryString = "select i.Name, i.Description from AnotherItem i where i.Name='widget'"; object savedId; using (ISession s = OpenSession()) using (ITransaction tx = s.BeginTransaction()) { await(s.CreateQuery(queryString).SetCacheable(true).ListAsync()); var i = new AnotherItem { Name = "widget" }; savedId = await(s.SaveAsync(i)); await(tx.CommitAsync()); } QueryStatistics qs = Sfi.Statistics.GetQueryStatistics(queryString); EntityStatistics es = Sfi.Statistics.GetEntityStatistics(typeof(AnotherItem).FullName); Thread.Sleep(200); IList result; using (ISession s = OpenSession()) using (ITransaction tx = s.BeginTransaction()) { await(s.CreateQuery(queryString).SetCacheable(true).ListAsync()); await(tx.CommitAsync()); } Assert.That(qs.CacheHitCount, Is.EqualTo(0)); using (ISession s = OpenSession()) using (ITransaction tx = s.BeginTransaction()) { await(s.CreateQuery(queryString).SetCacheable(true).ListAsync()); await(tx.CommitAsync()); } Assert.That(qs.CacheHitCount, Is.EqualTo(1)); using (ISession s = OpenSession()) using (ITransaction tx = s.BeginTransaction()) { await(s.CreateQuery(queryString).SetCacheable(true).SetResultTransformer(transformer).ListAsync()); await(tx.CommitAsync()); } Assert.That(qs.CacheHitCount, Is.EqualTo(2), "hit count should go up since the cache contains the result before the possible application of a resulttransformer"); using (ISession s = OpenSession()) using (ITransaction tx = s.BeginTransaction()) { await(s.CreateQuery(queryString).SetCacheable(true).SetResultTransformer(transformer).ListAsync()); await(tx.CommitAsync()); } Assert.That(qs.CacheHitCount, Is.EqualTo(3), "hit count should go up since we are using the same resulttransformer"); using (ISession s = OpenSession()) using (ITransaction tx = s.BeginTransaction()) { result = await(s.CreateQuery(queryString).SetCacheable(true).ListAsync()); Assert.That(result.Count, Is.EqualTo(1)); var i = await(s.GetAsync <AnotherItem>(savedId)); i.Name = "Widget"; await(tx.CommitAsync()); } Assert.That(qs.CacheHitCount, Is.EqualTo(4)); Assert.That(qs.CacheMissCount, Is.EqualTo(2)); Thread.Sleep(200); using (ISession s = OpenSession()) using (ITransaction tx = s.BeginTransaction()) { await(s.CreateQuery(queryString).SetCacheable(true).ListAsync()); var i = await(s.GetAsync <AnotherItem>(savedId)); Assert.That(i.Name, Is.EqualTo("Widget")); await(s.DeleteAsync(i)); await(tx.CommitAsync()); } Assert.That(qs.CacheHitCount, Is.EqualTo(4)); Assert.That(qs.CacheMissCount, Is.EqualTo(3)); Assert.That(qs.CachePutCount, Is.EqualTo(3)); Assert.That(qs.ExecutionCount, Is.EqualTo(3)); Assert.That(es.FetchCount, Is.EqualTo(0)); //check that it was being cached }
public async Task QueryCacheInvalidationAsync() { await(Sfi.EvictQueriesAsync()); Sfi.Statistics.Clear(); const string queryString = "from Item i where i.Name='widget'"; object savedId = await(CreateItemAsync(queryString)); QueryStatistics qs = Sfi.Statistics.GetQueryStatistics(queryString); EntityStatistics es = Sfi.Statistics.GetEntityStatistics(typeof(Item).FullName); Thread.Sleep(200); IList result; using (ISession s = OpenSession()) using (ITransaction tx = s.BeginTransaction()) { result = await(s.CreateQuery(queryString).SetCacheable(true).ListAsync()); Assert.That(result.Count, Is.EqualTo(1)); await(tx.CommitAsync()); } Assert.That(qs.CacheHitCount, Is.EqualTo(0)); using (ISession s = OpenSession()) using (ITransaction tx = s.BeginTransaction()) { result = await(s.CreateQuery(queryString).SetCacheable(true).ListAsync()); Assert.That(result.Count, Is.EqualTo(1)); await(tx.CommitAsync()); } Assert.That(qs.CacheHitCount, Is.EqualTo(1)); Assert.That(es.FetchCount, Is.EqualTo(0)); using (ISession s = OpenSession()) using (ITransaction tx = s.BeginTransaction()) { result = await(s.CreateQuery(queryString).SetCacheable(true).ListAsync()); Assert.That(result.Count, Is.EqualTo(1)); Assert.That(NHibernateUtil.IsInitialized(result[0])); var i = (Item)result[0]; i.Name = "Widget"; await(tx.CommitAsync()); } Assert.That(qs.CacheHitCount, Is.EqualTo(2)); Assert.That(qs.CacheMissCount, Is.EqualTo(2)); Assert.That(es.FetchCount, Is.EqualTo(0)); Thread.Sleep(200); using (ISession s = OpenSession()) using (ITransaction tx = s.BeginTransaction()) { await(s.CreateQuery(queryString).SetCacheable(true).ListAsync()); var i = await(s.GetAsync <Item>(savedId)); Assert.That(i.Name, Is.EqualTo("Widget")); await(s.DeleteAsync(i)); await(tx.CommitAsync()); } Assert.That(qs.CacheHitCount, Is.EqualTo(2)); Assert.That(qs.CacheMissCount, Is.EqualTo(3)); Assert.That(qs.CachePutCount, Is.EqualTo(3)); Assert.That(qs.ExecutionCount, Is.EqualTo(3)); Assert.That(es.FetchCount, Is.EqualTo(0)); //check that it was being cached }
public void TargetSendStats(NetworkConnection identity, int[] statType, int[] dataType, string[] data) { Debug.Log("Received Stats"); Statistics = CardEntry.FromNetwork(new Tuple <int[], int[], string[]>(statType, dataType, data)); StatisticsValid = true; }
public void SimpleProjections() { var transformer = new CustomTrasformer(); sessions.EvictQueries(); sessions.Statistics.Clear(); const string queryString = "select i.Name, i.Description from AnotherItem i where i.Name='widget'"; object savedId; using (ISession s = OpenSession()) using (ITransaction tx = s.BeginTransaction()) { s.CreateQuery(queryString).SetCacheable(true).List(); var i = new AnotherItem { Name = "widget" }; savedId = s.Save(i); tx.Commit(); } QueryStatistics qs = sessions.Statistics.GetQueryStatistics(queryString); EntityStatistics es = sessions.Statistics.GetEntityStatistics(typeof(AnotherItem).FullName); Thread.Sleep(200); IList result; using (ISession s = OpenSession()) using (ITransaction tx = s.BeginTransaction()) { s.CreateQuery(queryString).SetCacheable(true).List(); tx.Commit(); } Assert.That(qs.CacheHitCount, Is.EqualTo(0)); using (ISession s = OpenSession()) using (ITransaction tx = s.BeginTransaction()) { s.CreateQuery(queryString).SetCacheable(true).List(); tx.Commit(); } Assert.That(qs.CacheHitCount, Is.EqualTo(1)); using (ISession s = OpenSession()) using (ITransaction tx = s.BeginTransaction()) { s.CreateQuery(queryString).SetCacheable(true).SetResultTransformer(transformer).List(); tx.Commit(); } Assert.That(qs.CacheHitCount, Is.EqualTo(1), "hit count should not go up since we are adding a resulttransformer"); using (ISession s = OpenSession()) using (ITransaction tx = s.BeginTransaction()) { s.CreateQuery(queryString).SetCacheable(true).SetResultTransformer(transformer).List(); tx.Commit(); } Assert.That(qs.CacheHitCount, Is.EqualTo(2), "hit count should go up since we are using the same resulttransformer"); using (ISession s = OpenSession()) using (ITransaction tx = s.BeginTransaction()) { result = s.CreateQuery(queryString).SetCacheable(true).List(); Assert.That(result.Count, Is.EqualTo(1)); var i = s.Get <AnotherItem>(savedId); i.Name = "Widget"; tx.Commit(); } Assert.That(qs.CacheHitCount, Is.EqualTo(3)); Assert.That(qs.CacheMissCount, Is.EqualTo(3)); Thread.Sleep(200); using (ISession s = OpenSession()) using (ITransaction tx = s.BeginTransaction()) { s.CreateQuery(queryString).SetCacheable(true).List(); var i = s.Get <AnotherItem>(savedId); Assert.That(i.Name, Is.EqualTo("Widget")); s.Delete(i); tx.Commit(); } Assert.That(qs.CacheHitCount, Is.EqualTo(3)); Assert.That(qs.CacheMissCount, Is.EqualTo(4)); Assert.That(qs.CachePutCount, Is.EqualTo(4)); Assert.That(qs.ExecutionCount, Is.EqualTo(4)); Assert.That(es.FetchCount, Is.EqualTo(0)); //check that it was being cached }
public Player(int x, int y, EntityStatistics stats) : base(x, y) { Stats = stats; GenerateHeatMap(x, y); }
public Monster(int x, int y, EntityStatistics stats) : base(x, y) { Stats = stats; }