Exemple #1
0
    // ********************************************************************************************************
    // OTHER METHODS ******************************************************************************************
    // ********************************************************************************************************



    // INITIALIZE AI
    public void InitializeAI()
    {
        Behave = new BehaviorDelegate(AIBehavior);
        Array.Resize(ref AICursors, belts.Length);

        /*Array.Resize(ref beltTypes, belts.Length);
         * for (int i = 0; i < belts.Length; i++)
         * {
         *  beltTypes[i] = belts[i].GetComponent<BeltControl>().beltParams.type;
         * }*/
    }
Exemple #2
0
    //private float[] orientAngles = { 90, 45, 22.5F, 0.1F, -1, -22.5F, -45, -90 };



    // START
    void Start()
    {
        // ENERGY INIT
        energy           = poleParams.poleMaxEnergy * poleModif.energyMaxCoef;
        energyBarControl = energyBar.GetComponent <BarControl>();

        // SPEED INIT
        poleSpeed = new Vector3(0, 0, 0);

        // GETTING BELT CONTROLS
        Array.Resize(ref beltControls, belts.Length);
        for (int i = 0; i < beltControls.Length; i++)
        {
            beltControls[i] = belts[i].GetComponent <BeltControl>();
        }

        // INFO INIT
        AIParams    = new string[6];
        AIParams[0] = "AIRandomMove: " + poleParams.AIRandomMove.ToString();
        AIParams[1] = "AISearchingMove: " + poleParams.AISearchingMove.ToString();
        AIParams[2] = "AIFiringOnContact: " + poleParams.AIFiringOnContact.ToString();
        AIParams[3] = "AITargetMovePrediction: " + poleParams.AITargetMovePrediction.ToString();
        AIParams[4] = "AIManuvering: " + poleParams.AIManuvering.ToString();
        AIParams[5] = "AISeekLastPosition: " + poleParams.AISeekLastPosition.ToString();

        // BEHAVIOR DELEGATE INIT
        switch (poleParams.type)
        {
        case PoleType.Player:
            Behave = new BehaviorDelegate(PlayerBehavior);
            break;

        case PoleType.Enemy:
            AIBehave = new BehaviorDelegate(EnemyBehavior);
            InitializeAI();
            break;

        case PoleType.NeutralStatic:
            AIBehave = new BehaviorDelegate(NeutralStaticBehavior);
            InitializeAI();
            break;

        case PoleType.NeutralMovable:
            AIBehave = new BehaviorDelegate(NeutralStaticBehavior);
            InitializeAI();
            break;

        default:
            break;
        }

        // POLE ASSEMBLY TRANSFORM INIT
        poleAssemblyTransform = poleAssembly.GetComponent <Transform>();

        // POLE HEIGHT LIMIT AND PARAM INIT
        poleModelRelationHeightTop    = poleAssemblyTransform.position.y - transform.position.y;
        poleModelRelationHeightBottom = poleModelRelationHeightTop - poleParams.poleModelMaxRelationHeightDiff;

        // EFFECTS INIT
        foreach (Transform child in gameObject.GetComponentsInChildren <Transform>())
        {
            switch (child.gameObject.name)
            {
            case "DownEngineFire":
                downEngineFire = child.gameObject;
                break;

            case "UpEngineFire":
                upEngineFire = child.gameObject;
                break;

            case "RightEngineFire":
                rightEngineFire = child.gameObject;
                break;

            case "LeftEngineFire":
                leftEngineFire = child.gameObject;
                break;

            case "BodyDamagedLightning":
                bodyDamagedLightning = child.gameObject;
                break;

            case "EngineDamagedLightning":
                engineDamagedLightning = child.gameObject;
                break;

            case "SensorDamagedLightning":
                sensorDamagedLightning = child.gameObject;
                break;

            default:
                break;
            }
        }
        var leftEngineFireEmission  = leftEngineFire.GetComponent <ParticleSystem>().emission;
        var rightEngineFireEmission = rightEngineFire.GetComponent <ParticleSystem>().emission;
        var upEngineFireEmission    = upEngineFire.GetComponent <ParticleSystem>().emission;
        var downEngineFireEmission  = downEngineFire.GetComponent <ParticleSystem>().emission;

        leftEngineFireEmission.enabled  = false;
        rightEngineFireEmission.enabled = false;
        upEngineFireEmission.enabled    = false;
        downEngineFireEmission.enabled  = false;

        var bodyDamagedLightningEmission   = bodyDamagedLightning.GetComponent <ParticleSystem>().emission;
        var engineDamagedLightningEmission = engineDamagedLightning.GetComponent <ParticleSystem>().emission;
        var sensorDamagedLightningEmission = sensorDamagedLightning.GetComponent <ParticleSystem>().emission;

        bodyDamagedLightningEmission.enabled   = false;
        engineDamagedLightningEmission.enabled = false;
        sensorDamagedLightningEmission.enabled = false;

        // SOUND INIT
        antigravityEngineSound = gameObject.GetComponent <AudioSource>();
    }