Esempio n. 1
0
 void Awake()
 {
     Instance = this;
 }
Esempio n. 2
0
    /// <summary>
    /// Initialize the preferences based on the appearance of the alien
    /// </summary>
    /// <param name="in_Alien"></param>
    public AlienRequirements(AlienAI in_Alien)
    {
        MyAlien = in_Alien;

        BreathableAtmosphere.Add(GasType.Oxygen, new Gas(GasType.Oxygen)
        {
            Percentage = in_Alien.HeadLimbCount[HeadLimbType.Eye_Stalk] * 0.05f
        });
        BreathableAtmosphere.Add(GasType.Carbon_Dioxide, new Gas(GasType.Carbon_Dioxide)
        {
            Percentage = (in_Alien.HeadLimbCount[HeadLimbType.Eye_Stalk] * -0.05f) + in_Alien.ArmLimbCount[ArmLimbType.Tentacle] * 0.01f
        });
        BreathableAtmosphere.Add(GasType.Nitrogen, new Gas(GasType.Nitrogen)
        {
            Percentage = in_Alien.HeadLimbCount[HeadLimbType.EyeBalls] * 0.05f
        });
        BreathableAtmosphere.Add(GasType.Methane, new Gas(GasType.Methane)
        {
            Percentage = in_Alien.HeadLimbCount[HeadLimbType.EyeBalls] * -0.10f + in_Alien.ArmLimbCount[ArmLimbType.Tentacle] * 0.5f
        });
        BreathableAtmosphere.Add(GasType.Sulfur, new Gas(GasType.Sulfur)
        {
            Percentage = in_Alien.ArmLimbCount[ArmLimbType.Robot] * -0.05f + (in_Alien.HeadLimbCount[HeadLimbType.Antennae] > 0 ? 0.65f : 0f)
        });
        BreathableAtmosphere.Add(GasType.Hydrogen, new Gas(GasType.Hydrogen)
        {
            Percentage = in_Alien.HeadLimbCount[HeadLimbType.Mouth] > 0 ? 0.65f : 0f + in_Alien.HeadLimbCount[HeadLimbType.Antennae] > 0 ? 0.21f : 0f
        });
        BreathableAtmosphere.Add(GasType.Chlorine, new Gas(GasType.Chlorine)
        {
            Percentage = in_Alien.HeadLimbCount[HeadLimbType.Mouth] * -0.42f
        });

        switch (in_Alien.ArmLimbCount[ArmLimbType.Tentacle])
        {
        case 1:
            BreathableAtmosphere[GasType.Nitrogen].Percentage += 0.01f;
            break;

        case 2:
            BreathableAtmosphere[GasType.Nitrogen].Percentage += 0.10f;
            break;

        case 3:
            BreathableAtmosphere[GasType.Nitrogen].Percentage += 0.14f;
            break;

        case 4:
            BreathableAtmosphere[GasType.Nitrogen].Percentage += 0.10f;
            break;

        case 5:
            BreathableAtmosphere[GasType.Nitrogen].Percentage += 0.02f;
            break;

        case 6:
            BreathableAtmosphere[GasType.Nitrogen].Percentage += 0.03f;
            break;

        case 7:
            BreathableAtmosphere[GasType.Nitrogen].Percentage += 0.04f;
            break;

        case 8:
            BreathableAtmosphere[GasType.Nitrogen].Percentage += 0.02f;
            break;

        case 9:
            BreathableAtmosphere[GasType.Nitrogen].Percentage += 0.03f;
            break;

        case 10:
            BreathableAtmosphere[GasType.Nitrogen].Percentage += 0.10f;
            break;

        case 11:
            BreathableAtmosphere[GasType.Nitrogen].Percentage += 0.21f;
            break;

        case 12:
            BreathableAtmosphere[GasType.Nitrogen].Percentage += 0.04f;
            break;

        case 13:
            BreathableAtmosphere[GasType.Nitrogen].Percentage += 0.10f;
            break;

        case 14:
            BreathableAtmosphere[GasType.Nitrogen].Percentage += 0.05f;
            break;
        }
        switch (in_Alien.HeadLimbCount[HeadLimbType.Warts])
        {
        case 1:
            BreathableAtmosphere[GasType.Chlorine].Percentage += 0.09f;
            break;

        case 2:
            BreathableAtmosphere[GasType.Chlorine].Percentage += 0.13f;
            break;

        case 3:
            BreathableAtmosphere[GasType.Chlorine].Percentage += 0.5f;
            break;

        case 4:
            BreathableAtmosphere[GasType.Chlorine].Percentage += 0.15f;
            break;

        case 5:
            BreathableAtmosphere[GasType.Chlorine].Percentage += 0.15f;
            break;
        }

        LikedRadio = new Radio(RadioType.NULL, 0.5f, 0.1f);
        HatedRadio = new Radio(RadioType.Cantina, 0.5f, 0.1f);

        LikedHeat = new Heat(20, 5);

        switch (MyAlien.TorsoColor)
        {
        case TorsoLimbType.Red:
            LikedHeat.TemperatureDegrees = HeatingManager.Instance.MinTemperature;
            break;

        case TorsoLimbType.Blue:
            LikedHeat.TemperatureDegrees = HeatingManager.Instance.MaxTemperature;
            break;

        case TorsoLimbType.Green:
            LikedHeat.TemperatureDegrees = HeatingManager.Instance.MaxTemperature / 2;
            break;
        }
    }