示例#1
0
        //public void OnEnemyDied(EventData eventData) {
        //    spawnTime = 3.0f;
        //}


        private void ProcessLootTables(LootTableType lootTableType, Transform target)
        {
            foreach (LootTable lootTable in lootTables)
            {
                //Debug.LogFormat(" Processing loot table: " + lootTable.name );

                if (lootTable.name == lootTableType.ToString())
                {
                    foreach (Loot loot in lootTable.lootCollection)
                    {
                        //Debug.LogFormat(" Processing loot : table " + lootTable.name + " loot: " + loot.gameObject);

                        float lootChance = Random.Range(0, 100);
                        Debug.LogFormat(" Loot chance roll: " + loot.gameObject + " (" + lootChance.ToString() + ")");
                        if (lootChance <= loot.chance)
                        {
                            // drop loot
                            for (int i = 1; i <= loot.quantity; i++)
                            {
                                Debug.LogFormat(" Dropping loot: " + i + "    " + loot.gameObject);

                                GameObject lootDrop = (GameObject)Resources.Load(loot.gameObject);
                                spawnTarget = target.position + new Vector3(Random.Range(-2, 2), 0, Random.Range(-2, 2));
                                GameObject.Instantiate(lootDrop, spawnTarget, Quaternion.identity);
                            }
                        }
                    }
                }
            }
        }
示例#2
0
 public LootTable(LootTable another)
 {
     this.Items = new List <LootTableItem>();
     this.Type  = another.Type;
     for (int i = 0; i < another.Items.Count; i++)
     {
         this.Items.Add(new LootTableItem(another.Items[i]));
     }
     this.initializeOriginalWeights();
 }
示例#3
0
        public void QueueLoot(Transform target)
        {
            //spawnTime = Time.time;
            //spawnTarget = target.position + new Vector3(10, 0, 10);

            LootTableType lootTableType = ((EnemyCharacter)target.gameObject.GetComponent("EnemyCharacter")).lootTableType;

            //Debug.LogFormat("(EnemyCharacter)target.gameObject " + lootTableType.ToString());

            ProcessLootTables(lootTableType, target);
        }