public RenderedPowerup(RenderedWorld parent, float x, float y, PowerupType type, Game resourceScript) : base(parent, x, y, type) { // Create the unity object GameObject cloneSource = null; switch (type) { case PowerupType.Bombs: cloneSource = resourceScript.Protobombs; break; case PowerupType.Gravity: cloneSource = resourceScript.Protogravity; break; case PowerupType.Lightning: cloneSource = resourceScript.Protolightnings; break; case PowerupType.Minions: cloneSource = resourceScript.Protominions; break; case PowerupType.Rockets: cloneSource = resourceScript.Protorockets; break; case PowerupType.Speed: cloneSource = resourceScript.Protospeed; break; } ObjectTransform = Object.Instantiate(cloneSource.transform); ObjectTransform.position = new Vector3(x, y); }
// First-time setup void Start() { // Set up the world with the initial state currentWorld = new RenderedWorld(this); currentWorld.Display(); Gui.SetMode(0); restartTimer = -1; winner = 0; agentList = new List <IAgent>(); #if AIEnabled // Create q-learning object for the AI, and pick up learning where we left off qLearner = new QLearner(alpha: 0.3f, epsilon: 0.15f, discount: 0.66f); qLearner.OpenSavedData(); #endif #if AIP1 // Create AI for player 1 AIAgent player1Ai = new AIAgent(1); player1Ai.ResourceScript = this; // For debug rendering player1Ai.QLearner = qLearner; player1Ai.IsLearning = true; agentList.Add(player1Ai); #else // Create the human agent agentList.Add(new WASDFAgent(1)); #endif #if AIP2 // Create AI for player 1 AIAgent player2Ai = new AIAgent(2); player2Ai.ResourceScript = this; // For debug rendering player2Ai.QLearner = qLearner; player2Ai.IsLearning = true; agentList.Add(player2Ai); #else // Create the human agent agentList.Add(new ArrowsAgent(2)); #endif }