public Rocket InitiateLaunch(Player initiator, RocketType rocketName, Vector3 direction)
        {
            RocketParameters parameters = GM.RocketTypes.GetRocketParameters(rocketName);
            Rocket           newRocket  = GameObject.Instantiate(parameters.prefab,
                                                                 initiator.transform.position + direction * initiator.transform.localScale.x,
                                                                 Quaternion.LookRotation(direction, Vector3.back)).AddComponent <Rocket>();

            newRocket.OverwriteProperties(parameters);
            newRocket.LauncherPlanet = initiator.gameObject;

            return(newRocket);
        }
示例#2
0
        //need decorator
        public void OverwriteProperties(RocketParameters parameters)
        {
            if (!parameters)
            {
                return;
            }

            //Set available properies values
            foreach (RocketPropertyEntry entry in parameters.properties)
            {
                Parameters[entry.property] = entry.value;
            }
        }