Classe representant le feu
示例#1
0
    bool FindFireSpawnPoint(Fire spawner, ref Vector2 gridOffset)
    {
        bool oldRaycastsStartInColliders = Physics2D.raycastsStartInColliders; // Store the current value of raycastsStartInColliders because we're going to change it here temporarily.
        Physics2D.raycastsStartInColliders = false;

        Vector2[] possibleDirections = {
            new Vector2(-1, 0), //Vector2.left, //TODO Change back
            new Vector2(1, 0), //Vector2.right,
            new Vector2(0, 1), //Vector2.up,
            new Vector2(0, -1), //Vector2.down
        };
        List<Vector2> allowedDirections = new List<Vector2>();
        for (int i = 0; i < possibleDirections.Length; ++i) {
            float distanceToAdjacentsquare = new Vector2(possibleDirections[i].x * gridSquareDimensions.x, possibleDirections[i].y * gridSquareDimensions.y).magnitude;
            RaycastHit2D hit = Physics2D.Raycast (spawner.transform.position, possibleDirections[i]);

            if (hit.collider != null) {
                if (hit.distance > distanceToAdjacentsquare) {
                    allowedDirections.Add(possibleDirections[i]);
                }
            }
        }
        Physics2D.raycastsStartInColliders = oldRaycastsStartInColliders;	// Restore the old value.

        if (allowedDirections.Count > 0) {
            int selected = Random.Range(0, allowedDirections.Count);
            gridOffset = allowedDirections[selected];
            return true;
        }
        else {
            MakeFlameNonspreadable(spawner);
            return false;
        }
    }
 void Start()
 {
     controller = gameObject.GetComponent<BehaviourController>();
     controller.setBehaviour<Control>();
     controller.target = null;
     fire = gameObject.GetComponent<Fire>();
     fire.aimOffset = Vector3.forward;
 }
	void Start () {
		heightAboveFloor = transform.position.y;

		collisionEvents = new ParticleCollisionEvent[sprinklers.Length][];
		
		fireBarrel = GameObject.FindWithTag ("FireBarrel");
		
		fire = fireBarrel.GetComponent<Fire>();
	}
示例#4
0
        public void DecorateAttack()
        {
            double[] stats = new double[StatList.ArrayLength];
            stats[StatList.MeleeStrength] = 10;
            stats[StatList.MentalStrength] = 15;
            Attack punch = new Attack("Punch", 10, stats);
            Console.WriteLine("{0} has dealt {1} damage!", punch.Name, punch.Damage);

            Fire firePunch = new Fire(punch, 20, "Fire");
            Console.WriteLine("{0} {1} has dealt {2} damage!", firePunch.ModifierText, firePunch.Name, firePunch.Damage);
        }
示例#5
0
    void Awake()
    {
        Owner = GetComponent<Actor>();
        GameObject tmp = Instantiate(Beam);
        m_hBeam = tmp.GetComponent<IBeam>();
        m_fDurationTime = ActiveTime;

        m_hWeaponOff = new WeaponOff(this);
        m_hWeaponOn = new WeaponOn(this);
        m_hFire = new Fire(this);
        m_hStartRecharging = new StartRecharging(this);
        m_hRecharging = new Recharging(this);

        m_hCurrent = m_hWeaponOff;
    }
        public override void Update(GameTime gameTime)
        {
            Vector2 jetpackLoc = new Vector2(location.X + 70, location.Y + 60);
            Vector2 direction = (flips == SpriteEffects.FlipHorizontally ? new Vector2(-1, 1) : Vector2.One);

            //Add fire to his jetpack ! Aïe Caramba !
            TGPAContext.Instance.ParticleManager.AddParticle(new Smoke(jetpackLoc, RandomMachine.GetRandomVector2(3f, 7f, 10f, 40f) * direction,
                0.30f, 0.30f, 0.30f, 1f,
                RandomMachine.GetRandomFloat(0.1f, .3f),
                RandomMachine.GetRandomInt(0, 4)), true);

            Fire f = new Fire(jetpackLoc, RandomMachine.GetRandomVector2(10f, 10f, 10f, 40f) * direction,
                0.25f, RandomMachine.GetRandomInt(0, 4));
            TGPAContext.Instance.ParticleManager.AddParticle(f, true);

            base.Update(gameTime);
        }
示例#7
0
    void Awake(){

        fireMeshes = GetComponentsInChildren<MeshRenderer>();
        mAnimator = GetComponentInChildren<Animator>();

        if( instance != null && instance != this ){
            Destroy(gameObject);
            return;
        } else {
            DontDestroyOnLoad( gameObject );
        }
        light.enabled = false;
        DisableMeshes();
        if( instance == null ){
            instance = this;
            //BeginCountdown();

        }

    }
示例#8
0
    public override void MakeObservations(int currentTime, Character character)
    {
        //Observe fire in bakery from garden
        if (character.GetCurrentLocation() == garden)
        {
            List <Item> items = new List <Item>();

            for (int i = 0, count = bakery.items.Count; i < count; i++)
            {
                Fire fire = bakery.items[i] as Fire;

                if (fire != null)
                {
                    items.Add(fire);
                }
            }

            Observation fireObservation = new Observation(currentTime, bakery, new List <Character>(), items, false);
            character.observations.Add(fireObservation);
        }
    }
示例#9
0
        protected override SpaceShipControlInput GetControls()
        {
            SpaceShipControlInput input = new SpaceShipControlInput();

            input.Fire1  = Fire.GetButtonState();
            input.Fire2  = FireSecondary.GetButtonState();
            input.LookAt = Cursor.Position;
            input.Strafe = Strafe.GetAxisPosition();
            input.Thrust = Thrust.GetAxisPosition();
            input.Select = Select.GetButtonState();
            for (int i = 0; i < Cycle.Length; ++i)
            {
                if (Cycle[i].GetButtonState())
                {
                    input.CycleWeapon = i;
                }
            }
            input.NextWeapon     = NextWeapon.GetButtonState();
            input.PreviousWeapon = PreviousWeapon.GetButtonState();
            return(input);
        }
示例#10
0
 private static void LoadFireData(Fire __instance, string guid)
 {
     if (FAD.ContainsKey(guid))
     {
         float timeDiff = GameManager.GetTimeOfDayComponent().GetTODSeconds(GameManager.GetTimeOfDayComponent().GetSecondsPlayedUnscaled()) - FAD[guid].timestamp;
         __instance.m_EmberTimer                   = FAD[guid].emberTimer;
         __instance.m_ElapsedOnTODSeconds          = FAD[guid].burnSeconds;
         __instance.m_MaxOnTODSeconds              = FAD[guid].burnMaxSeconds;
         __instance.m_EmberDurationSecondsTOD      = FAD[guid].embersSeconds;
         __instance.m_FuelHeatIncrease             = FAD[guid].heatTemp;
         __instance.m_HeatSource.m_MaxTempIncrease = FAD[guid].heatTemp;
         __instance.m_HeatSource.m_TempIncrease    = FAD[guid].heatTemp;
         CalculateFireTimers(__instance, timeDiff, __instance.m_MaxOnTODSeconds - __instance.m_ElapsedOnTODSeconds, true);
         //
         if (__instance.m_Campfire && (__instance.m_MaxOnTODSeconds > __instance.m_ElapsedOnTODSeconds || __instance.m_EmberDurationSecondsTOD > __instance.m_EmberTimer))
         {
             __instance.m_Campfire.m_State = CampfireState.Lit;
         }
         //MelonLogger.Log("restore " + guid + " burn:" + __instance.m_ElapsedOnTODSeconds + " max:" + __instance.m_MaxOnTODSeconds + " embers:" + __instance.m_EmberDurationSecondsTOD + " ember timer:" + __instance.m_EmberTimer + " reduce2:" + __instance.m_DurationSecondsToReduceToEmbers + " state:" + __instance.GetFireState().ToString());
     }
 }
示例#11
0
    public void UpdateFires()
    {
        for (int i = 0; i < (HEIGHT * WIDTH) - WIDTH; i++)
        {
            Fire fire_down = this.fires[i + WIDTH];
            int  rand      = this.random.Next(wind);
            // int valor = fire_down.GetIntensity() - rand - decay;
            int valor = fire_down.GetIntensity() - decay - rand;
            valor = valor >= 0 ? valor : 0;
            int index = i - rand;
            if (index < 0)
            {
                index = i;
            }

            Fire f = this.fires[index];
            f.SetIntensity(valor);
        }

        this.Update();
    }
示例#12
0
    void OnTriggerStay(Collider other)
    {
        LiquidSource lq = other.GetComponentInChildren <LiquidSource>();

        if (lq)
        {
            if (lq.liquidName == "Water")
            {
                SetPower(0, true);
            }
        }
        Fire f = other.GetComponentInChildren <Fire>();

        if (f)
        {
            if (f.onFire && !onFire)
            {
                LightUp();
            }
        }
    }
 public static void Postfix(SubFire __instance, SubFire.RoomFire startInRoom, bool __state)
 {
     // Spent way too much time trying to get around a bug in dnspy that doesn't allow me to propery edit this method, so I'm going with the hacky solution.
     // Every time a Fire is created, the whole list of SubFire.availableNodes is cleared, then populated with any transforms that have 0 childCount.
     // Next, it chooses a random index, then spawns a fire in that node.
     // We can easily find where it is because it'll be the only Transform in SubFire.availableNodes with a childCount > 0
     if (__state)
     {
         Fires fires = NitroxServiceLocator.LocateService <Fires>();
         foreach (Transform transform in __instance.availableNodes)
         {
             if (transform.childCount > 0)
             {
                 int  nodeIndex = Array.IndexOf(__instance.roomFires[startInRoom.roomLinks.room].spawnNodes, transform);
                 Fire fire      = transform.GetComponentInChildren <Fire>();
                 fires.OnCreate(fire, startInRoom, nodeIndex);
                 return;
             }
         }
     }
 }
示例#14
0
        public override void ExecuteSecondary()
        {
            Fire fire = this.gameObject.GetComponent <Fire>();

            if (fire)
            {
                fire.m_IsPerpetual = !fire.m_IsPerpetual;
            }
            else
            {
                fire = this.gameObject.GetComponentInChildren <Fire>();
                if (fire)
                {
                    fire.m_IsPerpetual = !fire.m_IsPerpetual;
                }
                else
                {
                    MelonLoader.MelonLogger.LogError("Attached object doesn't have a fire component.");
                }
            }
        }
示例#15
0
        protected virtual void OnFire(FireEventArgs e)
        {
            const string MESSAGE_FIRE =
                "В городе {0} пожар! Дом {1}. День {2}-й";

            Console.WriteLine(string.Format(MESSAGE_FIRE, townName,
                                            e.Building, e.Day));
            if (Fire != null)
            {
                Delegate[] eventHandlers =
                    Fire.GetInvocationList();
                resultService = new string[eventHandlers.Length];
                int k = 0;
                foreach (FireEventHandler evHandler in
                         eventHandlers)
                {
                    evHandler(this, e);
                    resultService[k++] = e.Result;
                }
            }
        }
示例#16
0
        public void AssertWasFiredGeneric()
        {
            Expect.Once.On(this.testInterfaceGeneric).EventAdd("MyEvent");
            Expect.Once.On(this.testInterfaceGeneric).EventRemove("MyEvent");

            using (EventTester <EventArgs> eventHelper = new EventTester <EventArgs>(this.testInterfaceGeneric, "MyEvent"))
            {
                // Check if an EventTesterException is thrown if the event has not occurred.
                Assert.Throws <EventTesterException>(eventHelper.AssertWasFired);

                // After the event was fired no exception occurs anymore
                Fire.On(this.testInterfaceGeneric).Event("MyEvent").With(null, EventArgs.Empty);
                eventHelper.AssertWasFired();

                // Another invocation can occur and still no execption is thrown
                Fire.On(this.testInterfaceGeneric).Event("MyEvent").With(null, EventArgs.Empty);
                eventHelper.AssertWasFired();
            }

            this.mockery.VerifyAllExpectationsHaveBeenMet();
        }
示例#17
0
    public void Shoot()
    {
        Vector3 position = transform.position;

        position.y -= 0.2F;
        if (fireDirection > 0)
        {
            position.x += 4.5F;
        }
        else if (fireDirection < 0)
        {
            position.x -= 3.0F;
        }
        Fire newFire = Instantiate(fire, position, fire.transform.rotation) as Fire;

        newFire.Direction = newFire.transform.right * fireDirection;
        if (isGrounded)
        {
            State = CharState.Attack;
        }
    }
示例#18
0
    protected void ResetBurningRiskForRoadBuildings(Vector3 position)
    {
        int layerMask = LayerMask.GetMask(nameof(Layers.Tile));

        Collider[] hitColliders = Physics.OverlapSphere(position, 4.0f, layerMask);

        foreach (Collider hit in hitColliders)
        {
            Tile hitTile = hit.gameObject.GetComponent <Tile>();
            if (hitTile == null || hitTile.GetBuildingContents() == null)
            {
                continue;
            }
            Fire burnable = hitTile.GetBuildingContents().gameObject.GetComponent(typeof(Fire)) as Fire;

            if (burnable != null)
            {
                burnable.ResetRisk();
            }
        }
    }
示例#19
0
        public override void SpawnSetup(Map map)
        {
            base.SpawnSetup(map);
            List <Thing> list = new List <Thing>(Position.GetThingList(map));

            foreach (Thing thing in list)
            {
                if (thing.HasAttachment(ThingDefOf.Fire))
                {
                    Fire fire = (Fire)thing.GetAttachment(ThingDefOf.Fire);
                    if (fire != null)
                    {
                        fire.fireSize = maxFireSize;
                    }
                }
                else
                {
                    thing.TryAttachFire(maxFireSize);
                }
            }
        }
示例#20
0
    void OnTriggerStay2D(Collider2D col)
    {
        if (col.tag == "Fire")
        {
            var ps = col.GetComponent <ParticleSystem>();

            if (ps.startSize > 0f)
            {
                ps.startSize -= Time.deltaTime * extinguishSpeed;
            }
            else
            {
                Fire fire = col.GetComponent <Fire>();
                if (fire.isExtinguished == false)
                {
                    fire.onFireExtinguished.Invoke();
                    Destroy(fire.gameObject);
                }
            }
        }
    }
示例#21
0
    public void SetColor(int C)
    {
        switch (C)
        {
        //HP - red
        case 1:
            GetComponent <Text>().color = Color.red;
            HP.SetActive(true);
            break;

        //Armor - grey
        case 2:
            GetComponent <Text>().color = Color.grey;
            Armor.SetActive(true);
            break;

        //Coin - yellow
        case 3:
            GetComponent <Text>().color = Color.yellow;
            Coin.SetActive(true);
            break;

        //Fire - yellow
        case 4:
            GetComponent <Text>().color = Color.yellow;
            Fire.SetActive(true);
            break;

        //Miss
        case 5:
            GetComponent <Text>().color = Color.grey;
            break;

        //XP
        case 6:
            GetComponent <Text>().color = Color.blue;
            XP.SetActive(true);
            break;
        }
    }
示例#22
0
        /// <summary>
        /// Update angle to aim player
        /// </summary>
        /// <param name="gameTime"></param>
        public override void Update(GameTime gameTime)
        {
            Vector2 tmplocation = location - structureLinkPoint;

            Vector2 firstReactorLoc  = tmplocation + firstReactorRelativeLoc;
            Vector2 secondReactorLoc = tmplocation + secondReactorRelativeLoc;

            int rand = RandomMachine.GetRandomInt(0, 1);

            if ((rand == 0) && (TGPAContext.Instance.Player2 != null))
            {
                fireAngle = Angles.GetAngle(this.Location, Vectors.ConvertPointToVector2(TGPAContext.Instance.Player2.DstRect.Center));
            }
            else
            {
                fireAngle = Angles.GetAngle(this.Location, Vectors.ConvertPointToVector2(TGPAContext.Instance.Player1.DstRect.Center));
            }

            //Jetpacks for plateform
            TGPAContext.Instance.ParticleManager.AddParticle(new Smoke(firstReactorLoc, RandomMachine.GetRandomVector2(-4f, 4f, 10f, 40f),
                                                                       0.30f, 0.30f, 0.30f, 1f,
                                                                       RandomMachine.GetRandomFloat(0.1f, .3f),
                                                                       RandomMachine.GetRandomInt(0, 4)), true);

            Fire f = new Fire(firstReactorLoc, RandomMachine.GetRandomVector2(-10f, 10f, 10f, 40f),
                              0.25f, RandomMachine.GetRandomInt(0, 4));

            TGPAContext.Instance.ParticleManager.AddParticle(f, true);

            TGPAContext.Instance.ParticleManager.AddParticle(new Smoke(secondReactorLoc, RandomMachine.GetRandomVector2(-4f, 4f, 10f, 40f),
                                                                       0.30f, 0.30f, 0.30f, 1f,
                                                                       RandomMachine.GetRandomFloat(0.1f, .3f),
                                                                       RandomMachine.GetRandomInt(0, 4)), true);

            f = new Fire(secondReactorLoc, RandomMachine.GetRandomVector2(-10f, 10f, 10f, 40f),
                         0.25f, RandomMachine.GetRandomInt(0, 4));
            TGPAContext.Instance.ParticleManager.AddParticle(f, true);

            base.Update(gameTime);
        }
示例#23
0
    // Use this for initialization
    void Start()
    {
        action = this.GetComponent<Fire>();
        movement = this.GetComponent<PlayerControls>();
        myView = this.GetComponent<PhotonView>();

        controls = this.transform.parent.GetComponentsInChildren<Transform>();

        foreach( Transform child in controls){
            if(child.CompareTag("touchGUI")){
                  GUIControls = child.gameObject;
            }
        }

        winds  = this.transform.parent.GetComponentsInChildren<Transform>();

        foreach( Transform child in winds){
            if(child.CompareTag("windGenerator")){
                  windGen = child.gameObject;
            }
        }

        windDisplays  = this.transform.parent.GetComponentsInChildren<Transform>();

        foreach( Transform child in windDisplays){
            if(child.CompareTag("windBar")){
                  windBar = child.gameObject;
            }
        }

        tags = GetComponentInChildren<Transform>();

        foreach( Transform child in tags){
            if(child.CompareTag("nametag")){
                  nameTag = child.gameObject;
            }
        }

        nameTag.GetComponent<TextMesh>().text = myView.owner.name;
    }
示例#24
0
    private void Update()
    {
        image.SetNativeSize();
        scaler.matchWidthOrHeight  = landscape ? 1 : 0;
        scaler.referenceResolution = image.rectTransform.sizeDelta;

        while (receiver.toEventLoop.TryDequeue(out var dataAndFrame))
        {
            (Data data, byte[] frame) = dataAndFrame;

            if (!_initialized)
            {
                var frameWidth  = data.frameWidth;
                var frameHeight = data.frameHeight;

                frustumHeight = Camera.main.orthographicSize * 2;
                frustumWidth  = frustumHeight * frameWidth / frameHeight;

                leftHand  = new Hand(handParams, xMult: -1);
                rightHand = new Hand(handParams, xMult: 1);

                leftFire = new Fire(leftHand, fireL);

                renderTexture  = new RenderTexture(frameWidth, frameHeight, depth: 24);
                receiveTexture = new Texture2D(frameWidth, frameHeight, TextureFormat.RGB24, mipChain: false);
                sendTexture    = new Texture2D(frameWidth, frameHeight, TextureFormat.RGB24, mipChain: false);
                image.texture  = receiveTexture;

                _initialized = true;
            }

            receiveTexture.LoadRawTextureData(frame);
            receiveTexture.Apply(updateMipmaps: false); // image.texture = receiveTexture;

            leftHand.Process(data.dataL);
            rightHand.Process(data.dataR);

            leftFire.Draw();
        }
    }
示例#25
0
        public IEnumerator ItemActionMenuDropTest2()
        {
            Character character = GameManager.CurrentLevel.GetCharacter(2, 2);

            character.Items.Clear();
            character.Items.Add(Fire.Create());

            yield return(MoveCursor(2, 2));

            yield return(Submit());

            yield return(Submit());

            yield return(DownArrow());

            yield return(DownArrow());

            yield return(Submit());

            Assert.False(GameManager.CharacterActionMenu.gameObject.activeSelf);
            Assert.True(GameManager.ItemDetailMenu.gameObject.activeSelf);

            Assert.True(character.Items.Count == 1);

            yield return(Submit());

            Assert.False(GameManager.ItemDetailMenu.gameObject.activeSelf);
            Assert.True(GameManager.ItemActionMenu.gameObject.activeSelf);

            yield return(DownArrow());

            yield return(DownArrow());

            yield return(Submit());

            Assert.False(GameManager.ItemActionMenu.gameObject.activeSelf);
            Assert.True(GameManager.CharacterActionMenu.gameObject.activeSelf);

            Assert.AreEqual(0, character.Items.Count);
        }
示例#26
0
    public void OnRecvGameMsg(byte[] data, int length)
    {
        object          o;
        BinaryFormatter formatter = new BinaryFormatter();

        using (MemoryStream s = new MemoryStream(data))
        {
            try
            {
                o = formatter.Deserialize(s);
                s.Close();
            }
            catch
            {
                Debug.Log("deserialize error!!!!!");
                return;
            }
        }
        Messages msg = o as Messages;

        if (msg == null)
        {
            return;
        }
        else
        {
            if (msg.type == Messages.Type.Position)
            {
                PlayerState state = msg.content as PlayerState;
                avatar.position = state.position.V3;
                avatar.rotation = state.rotation.Q;
            }

            if (msg.type == Messages.Type.Fire)
            {
                Fire      state = msg.content as Fire;
                Transform ball  = (Transform)Instantiate(ballPrefab, state.position.V3, state.rotation.Q);
            }
        }
    }
示例#27
0
        //Okay so the issue is
        //if its finished but not completely burnt
        //we dont want to be updating it
        //however it could start up again


        public void Update()
        {
            //     EngineController.debugMiniFires = 0;
            //first = true;
            if (!first)
            {
                first = true;

                Fire fire = new Fire(184, 184);
                AddFire(fire);  //need to add the fire to the map before adding the minifire
                fire.AddMiniFire(0, 0);
            }

            List <Fire> fireList = fireArray[currentUpdateCount];

            EngineController.debugFires = fireList.Count;

            for (int i = fireList.Count - 1; i > -1; i--)
            {
                Fire fire = fireList[i];
                fire.Update();

                if (fire.isCompleteBurntOut && fire.IsFinishedDrawingSmoke())
                {
                    RemoveFireFromUpdateList(i, fireList);
                    SetTileToBurnt(fire);
                }
                else if (fire.isPartialBurntOut && fire.IsFinishedDrawingSmoke())
                {
                    RemoveFireFromUpdateList(i, fireList);
                }
            }


            currentUpdateCount++;
            if (currentUpdateCount > arrayCount - 1)
            {
                currentUpdateCount = 0;
            }
        }
示例#28
0
        public IEnumerator EndActionTest6()
        {
            Character sourceCharacter = GameManager.CurrentLevel.GetCharacter(2, 2);

            sourceCharacter.Items.Clear();
            sourceCharacter.Items.Add(IronSword.Create());
            sourceCharacter.Items.Add(Fire.Create());

            Character targetCharacter = GameManager.CurrentLevel.GetCharacter(2, 1);

            targetCharacter.Items.Clear();
            targetCharacter.Items.Add(Fire.Create());

            // Move cursor
            yield return(MoveCursor(2, 2));

            // select character
            yield return(Submit());

            // select move
            yield return(Submit());

            // select trade
            yield return(DownArrow());

            yield return(Submit());

            // select trading character
            yield return(Submit());

            // trade item
            yield return(Submit());

            Assert.AreEqual(1, sourceCharacter.Items.Count);
            Assert.AreEqual(2, targetCharacter.Items.Count);

            yield return(Cancel());

            yield return(Cancel());
        }
        private void OnTriggerEnter2D(Collider2D other)
        {
            if (!destroyed)
            {
                Fire fire = other.GetComponent <Fire>();

                if (fire)
                {
                    Animator fireAnimator = other.GetComponent <Animator>();
                    destroyed = true;
                    fire.transform.localScale     = fireScale;
                    fire.transform.localPosition += (Vector3)fireOffset;

                    fireAnimator.speed = firePlaybackSpeed;

                    if (fire)
                    {
                        spriteBurn.Burn();
                    }
                }
            }
        }
        public override void Update(GameTime gameTime)
        {
            if (!Dead)
            {
                if (hp < 100)
                {
                    Vector2 newLoc = location;
                    newLoc.X += 70;
                    newLoc.Y += 300;

                    TGPAContext.Instance.ParticleManager.AddParticle(new Smoke(newLoc, RandomMachine.GetRandomVector2(-10f, 10f, 10f, 50f),
                                                                               0.60f, 0.60f, 0.60f, 1f,
                                                                               RandomMachine.GetRandomFloat(0.1f, .3f),
                                                                               RandomMachine.GetRandomInt(0, 4)), true);

                    Fire f = new Fire(newLoc, RandomMachine.GetRandomVector2(-4f, 4f, 10f, 90f),
                                      0.25f, RandomMachine.GetRandomInt(0, 4));
                    TGPAContext.Instance.ParticleManager.AddParticle(f, true);
                }
            }
            base.Update(gameTime);
        }
    void updateFireObjects()
    {
        float time = Time.time;

        while (fireQueue.Count > 0)
        {
            if (Random.Range(0f, 1f) > queueChance)
            {
                if (fireQueue.Peek().getStartTime() + fireLifeTime < time)
                {
                    Fire fire = fireQueue.Dequeue();

                    if (fireGrown < maxFire || Random.Range(0f, 1f) <= 0.30f)
                    {
                        SpreadToNeighbours(fire.GetPosition());
                    }

                    //spreadToNeighboursTest(fire.GetPosition(), numberDirections, diagonals);
                    firePositions.Remove(fire.GetPosition());

                    DestroyFire(fire);
                }

                else
                {
                    break;
                }
            }
            else
            {
                fireQueue.Enqueue(fireQueue.Dequeue());
            }
        }

        if (fireQueue.Count == 0)
        {
            fireGrown = 0;
        }
    }
示例#32
0
        public override DamageWorker.DamageResult Apply(DamageInfo dinfo, Thing victim)
        {
            DamageWorker.DamageResult damageResult = new DamageWorker.DamageResult();
            Fire fire = victim as Fire;

            DamageWorker.DamageResult result;
            if (fire == null || fire.Destroyed)
            {
                result = damageResult;
            }
            else
            {
                base.Apply(dinfo, victim);
                fire.fireSize -= dinfo.Amount * 0.01f;
                if (fire.fireSize <= 0.1f)
                {
                    fire.Destroy(DestroyMode.Vanish);
                }
                result = damageResult;
            }
            return(result);
        }
示例#33
0
        public void InvocationCountGeneric()
        {
            Expect.Once.On(this.testInterfaceGeneric).EventAdd("MyEvent");
            using (EventTester <EventArgs> eventHelper = new EventTester <EventArgs>(this.testInterfaceGeneric, "MyEvent"))
            {
                this.mockery.VerifyAllExpectationsHaveBeenMet();

                // 0 invocations have orrured
                Assert.AreEqual(0, eventHelper.InvocationCount);

                // Check that the invocation count increases with each invocation
                for (int i = 1; i < 10; i++)
                {
                    Fire.On(this.testInterfaceGeneric).Event("MyEvent").With(null, EventArgs.Empty);
                    Assert.AreEqual(i, eventHelper.InvocationCount);
                }

                Expect.Once.On(this.testInterfaceGeneric).EventRemove("MyEvent");
            }

            this.mockery.VerifyAllExpectationsHaveBeenMet();
        }
示例#34
0
    public void TryToSpreadFire(Tile[] burnables)
    {
        if (burnables == null)
        {
            return;
        }

        foreach (Tile burnable in burnables)
        {
            if (burnable.GetContents() == null)
            {
                return;
            }

            Fire burnableScript = burnable.GetContents().GetComponent <Fire>();

            if (burnableScript != null)
            {
                burnableScript.Increase(0.1f);
            }
        }
    }
        public void GetFireTest()
        {
            List <Tile> tiles = new List <Tile>();
            Room        r;

            for (int i = 0; i < 16; i++)
            {
                tiles.Add(new Tile(new Vector(i, i), 1, null, null, null, null, Color.White, i, i));
            }
            r = new Room(tiles, 0);

            Fire f        = new Fire(tiles[1]);
            Fire testFire = f;

            r.AddFire(f);
            f = new Fire(tiles[2]);
            r.AddFire(f);

            f = r.GetFire(tiles[1]);

            Assert.AreEqual(f, testFire);
        }
示例#36
0
    protected override void OnTriggerEnter2D(Collider2D collider)
    {
        Unit unit = collider.GetComponent <Unit>();

        if (unit && unit is CharacterInCampaighController)
        {
            /*       rasst = Mathf.Abs(unit.transform.position.x - transform.position.x);
             *     if (rasst < 2.0F) ReceiveDamage();
             *     else unit.ReceiveDamage();
             */
            unit.ReceiveDamage();
            //         damageSound.Play();
        }

        Fire fire = collider.GetComponent <Fire>();

        if (fire)
        {
            ReceiveDamage();
            //          damageSound.Play();
        }
    }
示例#37
0
 public override void DoDamage(IntVec3 pos)
 {
     base.DoDamage(pos);
     try
     {
         if (pos != this.launcher.Position && this.launcher.Map != null && GenGrid.InBounds(pos, this.launcher.Map))
         {
             var list = this.launcher.Map.thingGrid.ThingsListAt(pos);
             for (int num = list.Count - 1; num >= 0; num--)
             {
                 if (list[num].def != this.def && list[num] != this.launcher && list[num].def != ThingDefOf.Fire && (!(list[num] is Mote) && (!(list[num] is Filth))))
                 {
                     if (!list.Where(x => x.def == ThingDefOf.Fire).Any())
                     {
                         CompAttachBase compAttachBase = list[num].TryGetComp <CompAttachBase>();
                         Fire           obj            = (Fire)ThingMaker.MakeThing(ThingDefOf.Fire);
                         obj.fireSize = 1f;
                         GenSpawn.Spawn(obj, list[num].Position, list[num].Map, Rot4.North);
                         if (compAttachBase != null)
                         {
                             obj.AttachTo(list[num]);
                             Pawn pawn = list[num] as Pawn;
                             if (pawn != null)
                             {
                                 pawn.jobs.StopAll();
                                 pawn.records.Increment(RecordDefOf.TimesOnFire);
                             }
                         }
                     }
                     this.customImpact = true;
                     base.Impact(list[num]);
                     this.customImpact = false;
                 }
             }
         }
     }
     catch { };
 }
示例#38
0
        static void Main(string[] args)
        {
            Console.Clear();

            //Pokemon pikachu = new Pokemon("Detective Pikachu");
            //pikachu.Speak();
            //pikachu.Name = "Pika";
            //pikachu.Speak();
            //pikachu.Speak("pikacuuuuuuuuu");

            //elements
            Element fire  = new Element("fire");
            Element water = new Element("water");

            //pokemon
            Fire  charmander = new Fire("Charmander", 175, "tail", fire);
            Water squirtle   = new Water("squirtle", 30, "mouth", water);
            Water goldine    = new Water("Goldine", 1, "Mouth", water);

            charmander.WonFight();
            charmander.Speak(3);
            System.Console.WriteLine(charmander.XP);


            // squirtle.Speak();
            //squirtle.Attack();
            //charmander.Attack();
            List <Pokemon> myPokemon = new List <Pokemon>();

            myPokemon.Add(charmander);
            myPokemon.Add(squirtle);
            myPokemon.ForEach(poke =>
            {
                poke.Attack();
            });

            System.Console.WriteLine(charmander.Element.Name);
        }
示例#39
0
	// Use this for initialization
	void Start () {
		if(transform.parent.GetComponent<Fire>() != null){
			fire = transform.parent.GetComponent<Fire>();
			endPoint = fire.getArea();
		}
		if(dir == Compass.east){
			endPoint = (int)Mathf.Round(transform.position.x) + endPoint;
			nextFx = (int)Mathf.Round(transform.position.x) + 1;
			pos = new Vector3(speed,0,0);
		}else if(dir == Compass.north){
			endPoint = (int)Mathf.Round(transform.position.z) + endPoint;
			nextFx = (int)Mathf.Round(transform.position.z) + 1;
			pos = new Vector3(0,0,speed);
		}else if(dir == Compass.south){
			endPoint = (int)Mathf.Round(transform.position.z) - endPoint;
			nextFx = (int)Mathf.Round(transform.position.z) - 1;
			pos = new Vector3(0,0,-speed);
		}else if(dir == Compass.west){
			endPoint = (int)Mathf.Round(transform.position.x) - endPoint;
			nextFx = (int)Mathf.Round(transform.position.x) - 1;
			pos = new Vector3(-speed,0,0);
		}
	}
示例#40
0
    void Awake()
    {
        player = GetComponent<PlayerControls>();
            thisFireBtn = GetComponent<Fire>();
            cam = this.transform.parent.GetComponentInChildren<Camera>();

            if (photonView.isMine)
            {
                cam.enabled = true;
                player.enabled=true;
                player.isControllable=true;
                thisFireBtn.isControllable=true;
            }
            else
            {
                cam.enabled = false;
                player.enabled=true;
                player.isControllable=false;
                thisFireBtn.isControllable=false;
            }

            gameObject.name = gameObject.name + photonView.viewID;
    }
示例#41
0
    private void Start()
    {
        //重力の初期値
        Physics.gravity = new Vector3(0, Down_Gravity, 0);

        _rigidbody = GetComponent<Rigidbody>();
        _fire = FindObjectOfType<Fire>();
    }
示例#42
0
        /// <summary>
        /// Update angle to aim player
        /// </summary>
        /// <param name="gameTime"></param>
        public override void Update(GameTime gameTime)
        {
            Vector2 tmplocation = location - structureLinkPoint;

            Vector2 firstReactorLoc = tmplocation + firstReactorRelativeLoc;
            Vector2 secondReactorLoc = tmplocation + secondReactorRelativeLoc;

            int rand = RandomMachine.GetRandomInt(0, 1);

            if ((rand == 0) && (TGPAContext.Instance.Player2 != null))
                fireAngle = Angles.GetAngle(this.Location, Vectors.ConvertPointToVector2(TGPAContext.Instance.Player2.DstRect.Center));
            else
                fireAngle = Angles.GetAngle(this.Location, Vectors.ConvertPointToVector2(TGPAContext.Instance.Player1.DstRect.Center));

            //Jetpacks for plateform
            TGPAContext.Instance.ParticleManager.AddParticle(new Smoke(firstReactorLoc, RandomMachine.GetRandomVector2(-4f, 4f, 10f, 40f),
                0.30f, 0.30f, 0.30f, 1f,
                RandomMachine.GetRandomFloat(0.1f, .3f),
                RandomMachine.GetRandomInt(0, 4)), true);

            Fire f = new Fire(firstReactorLoc, RandomMachine.GetRandomVector2(-10f, 10f, 10f, 40f),
                0.25f, RandomMachine.GetRandomInt(0, 4));
            TGPAContext.Instance.ParticleManager.AddParticle(f, true);

            TGPAContext.Instance.ParticleManager.AddParticle(new Smoke(secondReactorLoc, RandomMachine.GetRandomVector2(-4f, 4f, 10f, 40f),
            0.30f, 0.30f, 0.30f, 1f,
            RandomMachine.GetRandomFloat(0.1f, .3f),
            RandomMachine.GetRandomInt(0, 4)), true);

            f = new Fire(secondReactorLoc, RandomMachine.GetRandomVector2(-10f, 10f, 10f, 40f),
                0.25f, RandomMachine.GetRandomInt(0, 4));
            TGPAContext.Instance.ParticleManager.AddParticle(f, true);

            base.Update(gameTime);
        }
        public override void Update(GameTime gameTime)
        {
            if (step == 1)
            {
                speed.Y += 7;

                float tempsEcoule = (float)gameTime.ElapsedGameTime.TotalSeconds;
                float deplacementY = (speed.Y * tempsEcoule);

                location.Y += (deplacementY * direction.Y);

                TGPAContext.Instance.ParticleManager.AddParticle(new Smoke(Vectors.ConvertPointToVector2(DstRect.Center), RandomMachine.GetRandomVector2(0f, 0f, 10f, 40f),
            0.30f, 0.30f, 0.30f, 1f,
            RandomMachine.GetRandomFloat(0.1f, .3f),
            RandomMachine.GetRandomInt(0, 4)), true);

                Fire f = new Fire(Vectors.ConvertPointToVector2(DstRect.Center), RandomMachine.GetRandomVector2(0f, 0f, 10f, 40f),
                    0.25f, RandomMachine.GetRandomInt(0, 4));
                TGPAContext.Instance.ParticleManager.AddParticle(f, true);

                if (p1)
                {
                    if (((direction.Y > 0) && (location.Y >= TGPAContext.Instance.Player1.Location.Y))
                        || ((direction.Y < 0) && (location.Y <= TGPAContext.Instance.Player1.Location.Y)))
                    {
                        step = 2;
                        speed.Y = 0;
                        SoundEngine.Instance.PlaySound("specialPlop");
                    }
                }
                else if (p2)
                {
                    if (((direction.Y > 0) && (location.Y >= TGPAContext.Instance.Player2.Location.Y))
                        || ((direction.Y < 0) && (location.Y <= TGPAContext.Instance.Player2.Location.Y)))
                    {
                        step = 2;
                        speed.Y = 0;
                        SoundEngine.Instance.PlaySound("specialPlop");
                    }
                }

            }
            else if (step == 2)
            {
                speed.X += 10;

                float tempsEcoule = (float)gameTime.ElapsedGameTime.TotalSeconds;
                float deplacementX = (speed.X * tempsEcoule);

                location.X += (deplacementX * direction.X);

                TGPAContext.Instance.ParticleManager.AddParticle(new Smoke(Vectors.ConvertPointToVector2(DstRect.Center), RandomMachine.GetRandomVector2(10f, 40f, 0f, 0f),
            0.30f, 0.30f, 0.30f, 1f,
            RandomMachine.GetRandomFloat(0.1f, .3f),
            RandomMachine.GetRandomInt(0, 4)), true);

                Fire f = new Fire(Vectors.ConvertPointToVector2(DstRect.Center), RandomMachine.GetRandomVector2(10f, 40f, 0f, 0f),
                    0.25f, RandomMachine.GetRandomInt(0, 4));
                TGPAContext.Instance.ParticleManager.AddParticle(f, true);

                //Mon dieu ça c'est moche :
                sRect = new Rectangle(140, 30, 117, 99);
            }
            else
            {//Check if a player is near the cactus

                p1 = Math.Abs(TGPAContext.Instance.Player1.Location.X - location.X) < 500;

                p2 = false;

                if (TGPAContext.Instance.Player2 != null)
                {
                    p2 = Math.Abs(TGPAContext.Instance.Player2.Location.X - location.X) < 500;
                }

                if (p1 || p2)
                {
                    step = 1;
                    SoundEngine.Instance.PlaySound("specialPlop");
                    Background = false;
                    direction = new Vector2();

                    if (p1)
                    {
                        if (TGPAContext.Instance.Player1.Location.X < location.X) direction.X = -1;
                        else direction.X = 1;
                        if (TGPAContext.Instance.Player1.Location.Y < location.Y) direction.Y = -1;
                        else direction.Y = 1;
                    }
                    else if (p2)
                    {
                        if (TGPAContext.Instance.Player2.Location.X < location.X) direction.X = -1;
                        else direction.X = 1;
                        if (TGPAContext.Instance.Player2.Location.Y < location.Y) direction.Y = -1;
                        else direction.Y = 1;
                    }

                }
            }
            base.Update(gameTime);
        }
示例#44
0
 internal FireBarrel[] Filter(FireBarrel[] fires, Fire kind)
 {
     return (from f in fires
                 where f.name.StartsWith(kind.ToString())
                 select f).ToArray<FireBarrel>();
 }
 public static bool FireIsBeingHandled(Fire f, Pawn potentialHandler)
 {
     Pawn pawn = Find.Reservations.FirstReserverOf(f, potentialHandler.Faction);
     return pawn != null && pawn.Position.InHorDistOf(f.Position, 5f);
 }
示例#46
0
 void Start()
 {
     myView = this.GetComponent<PhotonView>();
         LifeScript = this.GetComponent<PlayerHealth>();
         ShootScript=this.GetComponent<Fire>();
         anim =  GetComponent<Animate>();
         SlidersObject = GameObject.FindGameObjectWithTag("Sliders");
         moveSlider=SlidersObject.GetComponent<ScrollScript>();
 }
        public override void Update(GameTime gameTime)
        {
            double tmp = rotation;
            rotation = saveRotation;

            base.Update(gameTime);

            rotation = tmp;
            rotation += 0.10f;

            //Fire and smoke
            Vector2 loc = Vectors.ConvertPointToVector2(DstRect.Center);

            TGPAContext.Instance.ParticleManager.AddParticle(new Smoke(loc, RandomMachine.GetRandomVector2(3f, 5f, -5f, 5f),
            0.30f, 0.30f, 0.30f, 1f,
            RandomMachine.GetRandomFloat(0.01f, .03f),
            RandomMachine.GetRandomInt(0, 4)), true);

            Fire f = new Fire(loc, RandomMachine.GetRandomVector2(3f, 5f, -5f, 5f),
                0.25f, RandomMachine.GetRandomInt(0, 4));
            TGPAContext.Instance.ParticleManager.AddParticle(f, true);
        }
        protected override void OnUpdate(Graphics.UpdateEventArgs e)
        {
            base.OnUpdate(e);
            if (!Activated) return;

            cannotPerformAcc += e.Dtime;
            if (cannotPerformAcc >= 1)
            {
                cannotPerformAcc = 0;
                lastCannotPerformAbility = null;
                lastCannotPerformReason = CannotPerformReason.None;
            }

            if (Game.Instance.State is Game.PausedState ||
                Game.Instance.Map.MainCharacter.State != Map.UnitState.Alive ||
                Game.Instance.FrameId <= 2 || !Program.Instance.Focused)
                return;

            if (Game.Instance.Input.State.SwitchToMeleeWeapon)
                Game.Instance.Map.MainCharacter.SelectedWeapon = 0;
            else if (Game.Instance.Input.State.SwitchToRangedWeapon)
                Game.Instance.Map.MainCharacter.SelectedWeapon = 1;

            RunDir.Y = RunDir.X = 0;
            //if((GetAsyncKeyState(65) >> 8) != 0)
            if (Game.Instance.Input.State.StrafeLeft)
                RunDir.X -= 1;
            //if ((GetAsyncKeyState(68) >> 8) != 0)
            if (Game.Instance.Input.State.StrafeRight)
                RunDir.X += 1;
            //if ((GetAsyncKeyState(87) >> 8) != 0)
            if (Game.Instance.Input.State.WalkForward)
                RunDir.Y += 1;
            //if ((GetAsyncKeyState(83) >> 8) != 0)
            if (Game.Instance.Input.State.WalkBackward)
                RunDir.Y -= 1;

            if (RunDir.Length() != 0)
            {
                Program.Instance.SignalEvent(new ProgramEvents.UserInput { InputType = ProgramEvents.UserInputType.WASD });
            }

            Game.Instance.Map.MainCharacter.Running = RunDir.Length() > 0;

            Vector3 mvp = Game.Instance.Input.State.MousePlanePosition;

            var dir3 = Vector3.Normalize(mvp - Game.Instance.Map.MainCharacter.Translation);
            var dir = Vector2.Normalize(Common.Math.ToVector2(dir3));
            if (dir.X == 0 && dir.Y == 0)
                dir.X = 1;
            float rot = (float)Common.Math.AngleFromVector3XY(Common.Math.ToVector3(dir));
            var worldDir = Vector3.Normalize(Game.Instance.Input.State.MouseGroundPosition -
                (Game.Instance.Map.MainCharacter.Translation + Vector3.UnitZ*Game.Instance.Map.MainCharacter.MainAttackFromHeight));
            float lean = (float)Math.Asin(worldDir.Z);
            if (Game.Instance.Map.MainCharacter.CanControlRotation)
            {
            #if DEBUG
                if (dir.X == 0 && dir.Y == 0)
                    throw new Exception("dir: " + dir + ", rot: " + rot);
                else
                    Game.Instance.Map.MainCharacter.LookatDir = rot;
            #else
                if(dir.X != 0 || dir.Y != 0)
                    Game.Instance.Map.MainCharacter.LookatDir = rot;
            #endif
                Game.Instance.Map.MainCharacter.TorsoLean = lean;
                if (!Game.Instance.Map.MainCharacter.Running)
                {
                    float startMoveLegsAngle = 0.7f;
                    if (Game.Instance.Map.MainCharacter.TorsoDiffDir > startMoveLegsAngle)
                        Game.Instance.Map.MainCharacter.Orientation = rot - startMoveLegsAngle < 0 ? rot - startMoveLegsAngle + 2f * (float)System.Math.PI : rot - startMoveLegsAngle;
                    else if (Game.Instance.Map.MainCharacter.TorsoDiffDir < -1)
                        Game.Instance.Map.MainCharacter.Orientation = rot + startMoveLegsAngle < 0 ? rot + startMoveLegsAngle + 2f * (float)System.Math.PI : rot + startMoveLegsAngle;
                }
            }

            bool spacePressed = Game.Instance.Input.State.Jump;
            if (spacePressed && !spaceWasPressed)
            {
                if (Game.Instance.Map.MainCharacter.State == Client.Game.Map.UnitState.Alive)
                {
                    Game.Instance.Map.MainCharacter.Jump();

                    Program.Instance.SignalEvent(new ProgramEvents.UserInput { InputType = ProgramEvents.UserInputType.Jump });
                }
            }
            spaceWasPressed = spacePressed;

            if (Game.Instance.Map.MainCharacter.CanControlMovement)
            {

                if (RunDir.Length() > 0)
                {
                    var runDir = Vector3.TransformNormal(Common.Math.ToVector3(RunDir),
                            Game.Instance.Scene.Camera.ViewProjection);
                    runDir.Z = 0;
                    runDir.Normalize();
                    runDir *= Game.Instance.Map.MainCharacter.RunSpeed;

                    Game.Instance.Map.MainCharacter.MotionUnit.RunVelocity = Common.Math.ToVector2(runDir);
                    float runAngle = (float)Common.Math.AngleFromVector3XY(runDir);
                    if (Common.Math.DiffAngle(rot, runAngle) > Math.PI / 2f)
                    {
                        runAngle = (float)Common.Math.AngleFromVector3XY(-runDir);
                        Game.Instance.Map.MainCharacter.RunningBackwards = true;
                    }
                    else
                        Game.Instance.Map.MainCharacter.RunningBackwards = false;

                    Game.Instance.Map.MainCharacter.MotionUnit.Rotation = Quaternion.RotationAxis(Vector3.UnitZ, runAngle < 0 ? runAngle + 2f * (float)System.Math.PI : runAngle);
                }
                else
                    Game.Instance.Map.MainCharacter.MotionUnit.RunVelocity = Vector2.Zero;
            }

            Fire fire = Fire.None;
            if (Game.Instance.Map.MainCharacter.CanPerformAbilities &&
                 !Game.Instance.Map.MainCharacter.IsPerformingAbility)
            {
                Vector3 mouseGroundPosition = Game.Instance.Input.State.MouseGroundPosition;

                //Map.Unit unit = null;
                //if (Game.Instance.SceneController.MouseOverEntity != null)
                //    unit = Game.Instance.SceneController.MouseOverEntity as Map.Unit;

                foreach (var v in Game.Instance.Map.MainCharacter.Abilities)
                {
                    //v.TargetEntity = unit;
                    v.TargetPosition = mouseGroundPosition;
                }

                Map.Ability ab = null;
                if (Game.Instance.Input.State.PrimaryFire)
                {
                    ab = Game.Instance.Map.MainCharacter.PrimaryAbility;
                    fire = Fire.Primary;

                    Program.Instance.SignalEvent(new ProgramEvents.UserInput { InputType = ProgramEvents.UserInputType.FirePrimary });
                }
                else if (Game.Instance.Input.State.SecondaryFire)
                {
                    ab = Game.Instance.Map.MainCharacter.SecondaryAbility;
                    fire = Fire.Secondary;
                }

                if (ab != null && !ab.IsPerforming)
                {
                    if (!ab.TryStartPerform())
                    {
                        if (ab.LastCannotPerformReason != CannotPerformReason.None &&
                            prevFire != fire)
                        {
                            DisplayCannotPerformWarning(ab, ab.LastCannotPerformReason);
                        }
                    }
                }

            }

            prevFire = fire;
        }
	void Start () {
	    fire = GameObject.FindObjectOfType<Fire>();
	}
示例#50
0
 //Water>Fire>Dark>Earth>Air>Arcana>Water
 // Use this for initialization
 void Start()
 {
     Fire FireSpell1 = new Fire("Fireball", 1);
     Air AirSpell1 = new Air("Gust", 1);
 }
        public override void Update(GameTime gameTime)
        {
            fireCooldown -= (float)gameTime.ElapsedGameTime.TotalMilliseconds;

            if (fireCooldown <= 0f) //Reduce flame effect for performance issues
            {
                fireCooldown = 25f;

                //Flame effect
                Fire f = new Fire(this.location + RandomMachine.GetRandomVector2(5f, -5.0f, -10.0f, 10.0f),
                                    RandomMachine.GetRandomVector2(-5.0f, 5.0f, -2.0f, 2.0f),
                                    1f,
                                    RandomMachine.GetRandomInt(0, 4));
                f.Additive = false;

                TGPAContext.Instance.ParticleManager.AddParticle(f);
            }
            base.Update(gameTime);
        }
示例#52
0
 // Use this for initialization
 void Awake()
 {
     S = this;
 }
示例#53
0
    /**
     *  To be called by Victor with BroadcastMessage("Launch", fireObject)
     *  in order to safely moveoutside moon's volume. This avoids physics collosions
     *  upon launch.
     */
    void Launch(Fire gameObjectToFire)
    {
        GameObject fireMe = gameObjectToFire.fireObject;
        CircleCollider2D colFire = fireMe.GetComponent<CircleCollider2D>();

        if (fireMe == null)
        {
            Debug.LogWarning("Cannot fire " + fireMe.name + ", it's null!");
        }
        else if (colFire == null)
        {
            Debug.LogWarning("Cannot fire " + fireMe.name + ", it's collider is missing!");
        }
        else if (launch == null)
        {
            Debug.LogWarning("Cannot fire " + fireMe.name + ", moon launch object is missing!");
        }
        else if (colMoon != null)
        {//Resources.Load("ammo_mass", typeof(GameObject))
            Vector3 dir = (moon.transform.position - launch.transform.position).normalized;
            float radiusMoon = colMoon.radius;
            float radiusFire = colFire.radius;
            if (launch == null) { Debug.Log("Moon's Launch object cannot be found."); return; }

            //places just outside moon, safely
            //launch.position = moon.transform.position + new Vector3(dir.x * radiusMoon, dir.y * radiusMoon, moon.transform.position.z) + new Vector3(dir.x * radiusFire, dir.y * radiusFire, 0);
            //launch.position += new Vector3(-3,3,0);
            //GameObject instance = Instantiate(fireMe, launch.position, Quaternion.identity) as GameObject;\
            fireMe.transform.position = launch.position;
            fireMe.GetComponent<Rigidbody2D>().AddForce(gameObjectToFire.initialForce,ForceMode2D.Impulse);
        }
        else
        {
            Debug.Log("Collider missing from moon, cannot Launch.");
        }
    }
示例#54
0
        /// <summary>
        /// Caca are stuck on the ground until player fly around them. Then the caca enable its powerfull jetpack to hit the player.
        /// </summary>
        /// <param name="gameTime"></param>
        public override void Update(GameTime gameTime)
        {
            if (!launching)
            {
                //Check if player is near the caca
                bool p1 = Math.Abs(TGPAContext.Instance.Player1.DstRect.Center.X - location.X) < 130;

                bool p2 = false;

                if (TGPAContext.Instance.Player2 != null)
                {
                    p2 = Math.Abs(TGPAContext.Instance.Player2.DstRect.Center.X - location.X) < 130;
                }

                if (p1 || p2)
                {
                    launching = true;

                    //Smile on caca's face
                    sRect.X = 128;

                    //Play a funny sound
                    SoundEngine.Instance.PlaySound("specialPlop");
                }
            }

            //Fly !
            if (launching)
            {
                speedBis -= 5;
                this.speed.Y = speedBis;

                float tempsEcoule = (float)gameTime.ElapsedGameTime.TotalSeconds;
                float deplacementY = (speed.Y * tempsEcoule);

                location.Y += deplacementY;

                Vector2 newLoc = Vectors.ConvertPointToVector2(DstRect.Center);

                //Little smoke contrail
                TGPAContext.Instance.ParticleManager.AddParticle(new Smoke(newLoc, RandomMachine.GetRandomVector2(0f, 0f, 10f, 40f),
            0.30f, 0.30f, 0.30f, 1f,
            RandomMachine.GetRandomFloat(0.1f, .3f),
            RandomMachine.GetRandomInt(0, 4)), true);

                Fire f = new Fire(newLoc, RandomMachine.GetRandomVector2(0f, 0f, 10f, 40f),
                    0.25f, RandomMachine.GetRandomInt(0, 4));
                TGPAContext.Instance.ParticleManager.AddParticle(f, true);

            }

            base.Update(gameTime);

            if (launching)
            {
                this.speed.Y = speedBis;
            }
        }
示例#55
0
 // Use this for initialization
 void Awake()
 {
     playerPhysics = GetComponent<PlayerPhysics>();
     fire = GetComponent<Fire>();
 }
示例#56
0
    public static void SaveObject(GameObject obj, bool expandable, int ExtinguishAgent)
    {
        tempFire = new Fire();
        tempFire.obj = obj;
        tempFire.expandable = expandable;
        tempFire.ExtinguishAgent = ExtinguishAgent;

        fireObjects.Add(tempFire);
    }
 public void RemoveFire(Fire fire)
 {
     fires.Remove(fire);
 }
示例#58
0
    public static SceneOptions LoadScene(string path, GameObject parent)
    {
        doc = new XmlDocument();
        loadedFireObjects = new List<Fire>();
        loadedGameObjects = new List<GameObject>();
        SceneOptions sceneOptions= new SceneOptions();

        XmlReaderSettings ReaderSettings = new XmlReaderSettings();
        ReaderSettings.IgnoreWhitespace = true;

        // Create an XmlReader
        //xmlDefaultPath + projectsMapName + tempName
        using(XmlReader reader = XmlReader.Create(path, ReaderSettings)) {
            doc.Load(reader);
            XmlElement root = doc.DocumentElement;
            // Create an XPathNavigator to use for the transform.
            XPathNavigator nav = root.CreateNavigator();

            #region SceneProperties
            XPathNodeIterator scenePropertiesNodus = nav.Select("/Scene/SceneProperties"); //Het pat dat hij moet afleggen in de XML File voor dat hij bij de juiste nodes is.
            while(scenePropertiesNodus.MoveNext()) { // Terwijl die elke keer volgende doet doet hij het volgende.
                XPathNavigator nodesNavigator = scenePropertiesNodus.Current; // hij begint vanaf het begin waar hij het path krijgt.

                XPathNodeIterator nodesText = nodesNavigator.SelectDescendants(XPathNodeType.Text, false);//maakt een variable aan die je kunt opvragen wat voor text er in staat.
                XPathNodeIterator scenePropertiesElement = nodesNavigator.SelectDescendants(XPathNodeType.Element, false);

                while(scenePropertiesElement.MoveNext()) { //pakt de volgende text.
                    //itemNodusElement.MoveNext();
                    //Debug.Log(itemNodusElement.Current.Name);
                    switch(scenePropertiesElement.Current.Name) {
                    case "TimerActive":
        //						print(scenePropertiesElement.Current.Value);
                        sceneOptions.timerActive = Convert.ToBoolean(scenePropertiesElement.Current.Value);
                        break;
                    case "Scenelength":
                        //print(scenePropertiesElement.Current.Value);
                        sceneOptions.scenelength = float.Parse(scenePropertiesElement.Current.Value);
                        break;
                    case "TimerVisable":
                        //print(scenePropertiesElement.Current.Value);
                        sceneOptions.timerVisable = Convert.ToBoolean(scenePropertiesElement.Current.Value);
                        break;
                    case "AudioNumber":
                        //print(scenePropertiesElement.Current.Value);
                        sceneOptions.audioNumber = Convert.ToInt16(scenePropertiesElement.Current.Value);
                        break;
                    case "BackgroundName":
                        //print(scenePropertiesElement.Current.Value);
                        sceneOptions.backgroundName = scenePropertiesElement.Current.Value;
                        break;

                    default:

                        break;
                    }

                }
            }
            #endregion

            #region SceneProperties
            XPathNodeIterator firesNodus = nav.Select("/Scene/Fires/Fire"); //Het pat dat hij moet afleggen in de XML File voor dat hij bij de juiste nodes is.
            while(firesNodus.MoveNext()) { // Terwijl die elke keer volgende doet doet hij het volgende.

                float posX = 0;
                float posY = 0;
                float posZ = 0;

                float rotationX = 0;
                float rotationY = 0;
                float rotationZ = 0;

                XPathNavigator nodesNavigator = firesNodus.Current; // hij begint vanaf het begin waar hij het path krijgt.

                XPathNodeIterator nodesText = nodesNavigator.SelectDescendants(XPathNodeType.Text, false);//maakt een variable aan die je kunt opvragen wat voor text er in staat.
                XPathNodeIterator FiresElement = nodesNavigator.SelectDescendants(XPathNodeType.Element, false);

                tempFire = new Fire();
                tempFire.obj = new GameObject();

                while(FiresElement.MoveNext()) { //pakt de volgende text.

                    //itemNodusElement.MoveNext();
                    switch(FiresElement.Current.Name) {
                    case "Name":
                        tempFire.obj.name = FiresElement.Current.Value;
                        break;
                    case "posX":
                        posX = float.Parse(FiresElement.Current.Value);
                        break;
                    case "posY":
        //						print("Test: " + FiresElement.Current.Value);
                        posY = float.Parse(FiresElement.Current.Value);
                        break;
                    case "posZ":
                        posZ = float.Parse(FiresElement.Current.Value);
                        break;
                    case "RotationX":
                        rotationX = float.Parse(FiresElement.Current.Value);
                        break;
                    case "RotationY":
                        rotationY = float.Parse(FiresElement.Current.Value);
                        break;
                    case "RotationZ":
                        rotationZ = float.Parse(FiresElement.Current.Value);
                        break;
                    case "Expanding":
                        tempFire.expandable = bool.Parse(FiresElement.Current.Value);
                        break;
                    case "ExtinguishAgent":
                        tempFire.ExtinguishAgent = int.Parse(FiresElement.Current.Value);
                        break;
                    }

                }

                tempFire.obj.transform.position = new Vector3(posX, posY, posZ);
                tempFire.obj.transform.rotation = new Quaternion(rotationX, rotationY, rotationZ, 0);
                loadedFireObjects.Add(tempFire);
            }
            #endregion

            #region SceneProperties
            XPathNodeIterator gameObjectNodus = nav.Select("/Scene/GameObjects/GameObject"); //Het pat dat hij moet afleggen in de XML File voor dat hij bij de juiste nodes is.
            while(gameObjectNodus.MoveNext()) { // Terwijl die elke keer volgende doet doet hij het volgende.
                GameObject tempObj;

                float posX = 0;
                float posY = 0;
                float posZ = 0;

                float rotationX = 0;
                float rotationY = 0;
                float rotationZ = 0;

                XPathNavigator nodesNavigator = gameObjectNodus.Current; // hij begint vanaf het begin waar hij het path krijgt.

                XPathNodeIterator nodesText = nodesNavigator.SelectDescendants(XPathNodeType.Text, false);//maakt een variable aan die je kunt opvragen wat voor text er in staat.
                XPathNodeIterator gameObjectElement = nodesNavigator.SelectDescendants(XPathNodeType.Element, false);

                tempObj = new GameObject();

                while(gameObjectElement.MoveNext()) { //pakt de volgende text.

                    //itemNodusElement.MoveNext();
                    switch(gameObjectElement.Current.Name) {
                    case "Name":
                        tempObj.name = gameObjectElement.Current.Value;
                        break;
                    case "posX":
                        posX = float.Parse(gameObjectElement.Current.Value);
                        break;
                    case "posY":
                        //print("Test: " + gameObjectElement.Current.Value);
                        posY = float.Parse(gameObjectElement.Current.Value);
                        break;
                    case "posZ":
                        posZ = float.Parse(gameObjectElement.Current.Value);
                        break;
                    case "RotationX":
                        rotationX = float.Parse(gameObjectElement.Current.Value);
                        break;
                    case "RotationY":
                        rotationY = float.Parse(gameObjectElement.Current.Value);
                        //print(rotationY);
                        break;
                    case "RotationZ":
                        rotationZ = float.Parse(gameObjectElement.Current.Value);
                        break;
                    }

                }

                tempObj.transform.position = new Vector3(posX, posY, posZ);
                tempObj.transform.rotation = new Quaternion(rotationX, rotationY, rotationZ, 0);
                loadedGameObjects.Add(tempObj);
            }
            #endregion

            for (int i = 0; i < loadedGameObjects.Count; i++) {
                loadedGameObjects[i].transform.parent = parent.transform;
            }

            for (int i = 0; i < loadedFireObjects.Count; i++) {
                loadedFireObjects[i].obj.transform.parent = parent.transform;
            }

            return sceneOptions;
        }
    }
示例#59
0
 public CaptainPlanet(Earth earth, Wind wind, Fire fire, Water water, Heart heart)
 {
 }
        public override void Update(GameTime gameTime)
        {
            Vector2 loc = Vectors.ConvertPointToVector2(DstRect.Center);

            //Add Smoke and fire
            TGPAContext.Instance.ParticleManager.AddParticle(new Smoke(loc, RandomMachine.GetRandomVector2(-1f, 1f, -2f, 2f),
            0.30f, 0.30f, 0.30f, 1f,
            RandomMachine.GetRandomFloat(0.01f, .03f),
            RandomMachine.GetRandomInt(0, 4)), true);

            Fire f = new Fire(loc, RandomMachine.GetRandomVector2(-1f, 1f, -2f, 2f),
                0.25f, RandomMachine.GetRandomInt(0, 4));
            TGPAContext.Instance.ParticleManager.AddParticle(f, true);

            base.Update(gameTime);
        }