Пример #1
0
	public bool RemoveRoundAnimated (){
		 if(num_rounds == 0 || mag_load_stage != MagLoadStage.NONE){
			return false;
		}
		mag_load_stage = MagLoadStage.REMOVING_ROUND;
		mag_load_progress = 0.0f;
		return true;
	}
Пример #2
0
 public bool RemoveRoundAnimated()
 {
     if (num_rounds == 0 || mag_load_stage != MagLoadStage.NONE)
     {
         return(false);
     }
     mag_load_stage    = MagLoadStage.REMOVING_ROUND;
     mag_load_progress = 0.0f;
     return(true);
 }
Пример #3
0
	public bool AddRound (){
		 if(num_rounds >= max_rounds || mag_load_stage != MagLoadStage.NONE){
			return false;
		}
		mag_load_stage = MagLoadStage.PUSHING_DOWN;
		mag_load_progress = 0.0f;
		PlaySoundFromGroup(sound_add_round, 0.3f);
		++num_rounds;
		var round_obj= transform.FindChild("round_"+num_rounds);
		round_obj.GetComponent<Renderer>().enabled = true;
		return true;
	}
Пример #4
0
    public bool AddRound()
    {
        if (num_rounds >= kMaxRounds || mag_load_stage != MagLoadStage.NONE)
        {
            return(false);
        }
        mag_load_stage    = MagLoadStage.PUSHING_DOWN;
        mag_load_progress = 0.0f;
        PlaySoundFromGroup(sound_add_round, 0.3f);
        ++num_rounds;
        Transform round_obj = transform.Find("round_" + num_rounds);

        round_obj.GetComponent <Renderer>().enabled = true;
        return(true);
    }
Пример #5
0
    public void Update()
    {
        if (mag_load_stage == MagLoadStage.NONE)
        {
            return;
        }

        Transform obj = null;

        mag_load_progress += Time.deltaTime / bulletReloadTime;
        if (mag_load_progress >= 1f)
        {
            mag_load_progress = 0f;

            switch (mag_load_stage)
            {
            case MagLoadStage.PUSHING_DOWN:
                mag_load_stage = MagLoadStage.ADDING_ROUND;
                break;

            case MagLoadStage.PUSHING_UP:
                RemoveRound();
                goto case MagLoadStage.ADDING_ROUND;

            case MagLoadStage.ADDING_ROUND:
                mag_load_stage = MagLoadStage.NONE;
                for (int i = 0; i < num_rounds; ++i)
                {
                    obj = transform.Find("round_" + (i + 1));
                    obj.localPosition = round_pos[i];
                    obj.localRotation = round_rot[i];
                }
                break;

            case MagLoadStage.REMOVING_ROUND:
                mag_load_stage = MagLoadStage.PUSHING_UP;
                break;
            }
        }

        float mag_load_progress_display = mag_load_progress;

        if (disable_interp)
        {
            mag_load_progress_display = Mathf.Floor(mag_load_progress + 0.5f);
        }

        switch (mag_load_stage)
        {
        case MagLoadStage.PUSHING_DOWN:
            obj = transform.Find("round_1");
            obj.localPosition = Vector3.Lerp(transform.Find("point_start_load").localPosition,
                                             transform.Find("point_load").localPosition,
                                             mag_load_progress_display);
            obj.localRotation = Quaternion.Slerp(transform.Find("point_start_load").localRotation,
                                                 transform.Find("point_load").localRotation,
                                                 mag_load_progress_display);
            for (int i = 1; i < num_rounds; ++i)
            {
                obj = transform.Find("round_" + (i + 1));
                obj.localPosition = Vector3.Lerp(round_pos[i - 1], round_pos[i], mag_load_progress_display);
                obj.localRotation = Quaternion.Slerp(round_rot[i - 1], round_rot[i], mag_load_progress_display);
            }
            break;

        case MagLoadStage.ADDING_ROUND:
            obj = transform.Find("round_1");
            obj.localPosition = Vector3.Lerp(transform.Find("point_load").localPosition,
                                             round_pos[0],
                                             mag_load_progress_display);
            obj.localRotation = Quaternion.Slerp(transform.Find("point_load").localRotation,
                                                 round_rot[0],
                                                 mag_load_progress_display);
            for (int i = 1; i < num_rounds; ++i)
            {
                obj = transform.Find("round_" + (i + 1));
                obj.localPosition = round_pos[i];
            }
            break;

        case MagLoadStage.PUSHING_UP:
            obj = transform.Find("round_1");
            obj.localPosition = Vector3.Lerp(transform.Find("point_start_load").localPosition,
                                             transform.Find("point_load").localPosition,
                                             1.0f - mag_load_progress_display);
            obj.localRotation = Quaternion.Slerp(transform.Find("point_start_load").localRotation,
                                                 transform.Find("point_load").localRotation,
                                                 1.0f - mag_load_progress_display);
            for (int i = 1; i < num_rounds; ++i)
            {
                obj = transform.Find("round_" + (i + 1));
                obj.localPosition = Vector3.Lerp(round_pos[i - 1], round_pos[i], mag_load_progress_display);
                obj.localRotation = Quaternion.Slerp(round_rot[i - 1], round_rot[i], mag_load_progress_display);
            }
            break;

        case MagLoadStage.REMOVING_ROUND:
            obj = transform.Find("round_1");
            obj.localPosition = Vector3.Lerp(transform.Find("point_load").localPosition,
                                             round_pos[0],
                                             1.0f - mag_load_progress_display);
            obj.localRotation = Quaternion.Slerp(transform.Find("point_load").localRotation,
                                                 round_rot[0],
                                                 1.0f - mag_load_progress_display);
            for (int i = 1; i < num_rounds; ++i)
            {
                obj = transform.Find("round_" + (i + 1));
                obj.localPosition = round_pos[i];
                obj.localRotation = round_rot[i];
            }
            break;
        }
    }
Пример #6
0
	void  Update (){
		switch(mag_load_stage){
			case MagLoadStage.PUSHING_DOWN:
				mag_load_progress += Time.deltaTime * 20.0f;
				if(mag_load_progress >= 1.0f){
					mag_load_stage = MagLoadStage.ADDING_ROUND;
					mag_load_progress = 0.0f;
				}
				break;
			case MagLoadStage.ADDING_ROUND:
				mag_load_progress += Time.deltaTime * 20.0f;
				if(mag_load_progress >= 1.0f){
					mag_load_stage = MagLoadStage.NONE;
					mag_load_progress = 0.0f;
					for(var i=0; i<num_rounds; ++i){
						var obj= transform.FindChild("round_"+(i+1));
						obj.localPosition = round_pos[i];
						obj.localRotation = round_rot[i];
					}
				}
				break;
			case MagLoadStage.PUSHING_UP:
				mag_load_progress += Time.deltaTime * 20.0f;
				if(mag_load_progress >= 1.0f){
					mag_load_stage = MagLoadStage.NONE;
					mag_load_progress = 0.0f;
					RemoveRound();
					for(var i=0; i<num_rounds; ++i){
						var obj = transform.FindChild("round_"+(i+1));
						obj.localPosition = round_pos[i];
						obj.localRotation = round_rot[i];
					}
				}
				break;
			case MagLoadStage.REMOVING_ROUND:
				mag_load_progress += Time.deltaTime * 20.0f;
				if(mag_load_progress >= 1.0f){
					mag_load_stage = MagLoadStage.PUSHING_UP;
					mag_load_progress = 0.0f;
				}
				break;
		}
		var mag_load_progress_display= mag_load_progress;
		if(disable_interp){
			mag_load_progress_display = Mathf.Floor(mag_load_progress + 0.5f);
		}
		switch(mag_load_stage){
			case MagLoadStage.PUSHING_DOWN:
				var obj = transform.FindChild("round_1");
				obj.localPosition = Vector3.Lerp(transform.FindChild("point_start_load").localPosition, 
												 transform.FindChild("point_load").localPosition, 
												 mag_load_progress_display);
				obj.localRotation = Quaternion.Slerp(transform.FindChild("point_start_load").localRotation, 
													 transform.FindChild("point_load").localRotation, 
													 mag_load_progress_display);
				for(var i=1; i<num_rounds; ++i){
					obj = transform.FindChild("round_"+(i+1));
					obj.localPosition = Vector3.Lerp(round_pos[i-1], round_pos[i], mag_load_progress_display);
					obj.localRotation = Quaternion.Slerp(round_rot[i-1], round_rot[i], mag_load_progress_display);
				}
				break;
			case MagLoadStage.ADDING_ROUND:
				obj = transform.FindChild("round_1");
				obj.localPosition = Vector3.Lerp(transform.FindChild("point_load").localPosition, 
												 round_pos[0], 
												 mag_load_progress_display);
				obj.localRotation = Quaternion.Slerp(transform.FindChild("point_load").localRotation, 
													 round_rot[0], 
													 mag_load_progress_display);
				for(var i=1; i<num_rounds; ++i){
					obj = transform.FindChild("round_"+(i+1));
					obj.localPosition = round_pos[i];
				}
				break;
			case MagLoadStage.PUSHING_UP:
				obj = transform.FindChild("round_1");
				obj.localPosition = Vector3.Lerp(transform.FindChild("point_start_load").localPosition, 
												 transform.FindChild("point_load").localPosition, 
												 1.0f-mag_load_progress_display);
				obj.localRotation = Quaternion.Slerp(transform.FindChild("point_start_load").localRotation, 
													 transform.FindChild("point_load").localRotation, 
													 1.0f-mag_load_progress_display);
				for(var i=1; i<num_rounds; ++i){
					obj = transform.FindChild("round_"+(i+1));
					obj.localPosition = Vector3.Lerp(round_pos[i-1], round_pos[i], mag_load_progress_display);
					obj.localRotation = Quaternion.Slerp(round_rot[i-1], round_rot[i], mag_load_progress_display);
				}
				break;
			case MagLoadStage.REMOVING_ROUND:
				obj = transform.FindChild("round_1");
				obj.localPosition = Vector3.Lerp(transform.FindChild("point_load").localPosition, 
												 round_pos[0], 
												 1.0f-mag_load_progress_display);
				obj.localRotation = Quaternion.Slerp(transform.FindChild("point_load").localRotation, 
													 round_rot[0], 
													 1.0f-mag_load_progress_display);
				for(var i=1; i<num_rounds; ++i){
					obj = transform.FindChild("round_"+(i+1));
					obj.localPosition = round_pos[i];
					obj.localRotation = round_rot[i];
				}
				break;
		}
	}