Exemplo n.º 1
0
	public void  ToggleAutoMod (){
		if(!has_auto_mod){
			return;
		}
		PlaySoundFromGroup(sound_safety, kGunMechanicVolume);
		if(auto_mod_stage == AutoModStage.DISABLED){
			auto_mod_stage = AutoModStage.ENABLED;
		} else if(auto_mod_stage == AutoModStage.ENABLED){
			auto_mod_stage = AutoModStage.DISABLED;
		}
	}
Exemplo n.º 2
0
	void  Start (){
		disable_springs = false;
		if(transform.FindChild("slide")){
			var slide= transform.FindChild("slide");
			has_slide = true;
			slide_rel_pos = slide.localPosition;
			if(slide.FindChild("auto mod toggle")){
				has_auto_mod = true;
				auto_mod_rel_pos = slide.FindChild("auto mod toggle").localPosition;
				if(Random.Range(0,2) == 0){
					auto_mod_amount = 1.0f;
					auto_mod_stage = AutoModStage.ENABLED;
				}
			}
		}
		var hammer= GetHammer();
		if(hammer){
			has_hammer = true;
			hammer_rel_pos = hammer.localPosition;
			hammer_rel_rot = hammer.localRotation;
		}
		var yolk_pivot= transform.FindChild("yolk_pivot");
		Transform extractor_rod = null;
		if(yolk_pivot){
			yolk_pivot_rel_rot = yolk_pivot.localRotation;
			var yolk= yolk_pivot.FindChild("yolk");
			if(yolk){
				var cylinder_assembly= yolk.FindChild("cylinder_assembly");
				if(cylinder_assembly){
					extractor_rod = cylinder_assembly.FindChild("extractor_rod");
					if(extractor_rod){
						extractor_rod_rel_pos = extractor_rod.localPosition;
					}
				}
			}
		}
		
		if(gun_type == GunType.AUTOMATIC){
			magazine_instance_in_gun = Instantiate(magazine_obj);
			magazine_instance_in_gun.transform.parent = transform;
		
			var renderers= magazine_instance_in_gun.GetComponentsInChildren<Renderer>();
			foreach(Renderer renderer in renderers){
				renderer.shadowCastingMode = ShadowCastingMode.Off; 
			}
			
			if(Random.Range(0,2) == 0){
				round_in_chamber = Instantiate(casing_with_bullet, transform.FindChild("point_chambered_round").position, transform.FindChild("point_chambered_round").rotation) as GameObject;
				round_in_chamber.transform.parent = transform;
				round_in_chamber.transform.localScale = new Vector3(1.0f,1.0f,1.0f);
				renderers = round_in_chamber.GetComponentsInChildren<Renderer>();
				foreach(Renderer renderer in renderers){
					renderer.shadowCastingMode = ShadowCastingMode.Off; 
				}
			}
			
			if(Random.Range(0,2) == 0){
				slide_amount = kSlideLockPosition;
				slide_lock = true;
			}
		}
		
		if(gun_type == GunType.REVOLVER){
			cylinders = new CylinderState[cylinder_capacity];
			for(var i=0; i<cylinder_capacity; ++i){
				cylinders[i] = new CylinderState();
				if(Random.Range(0,2) == 0){
					continue;
				}
				var name= "point_chamber_"+(i+1);
				cylinders[i]._object = Instantiate(casing_with_bullet, extractor_rod.FindChild(name).position, extractor_rod.FindChild(name).rotation) as GameObject;
				cylinders[i]._object.transform.localScale = new Vector3(1.0f,1.0f,1.0f);
				cylinders[i].can_fire = true;
				cylinders[i].seated = Random.Range(0.0f,0.5f);
				var renderers = cylinders[i]._object.GetComponentsInChildren<Renderer>();
				foreach(Renderer renderer in renderers){
					renderer.shadowCastingMode = ShadowCastingMode.Off;
				}
			}
		}
		
		if(Random.Range(0,2) == 0 && has_hammer){
			hammer_cocked = 0.0f;
		}
		
		if(transform.FindChild("safety")){
			has_safety = true;
			safety_rel_pos = transform.FindChild("safety").localPosition;
			safety_rel_rot = transform.FindChild("safety").localRotation;
			if(Random.Range(0,4) == 0){
				safety_off = 0.0f;
				safety = Safety.ON;
				slide_amount = 0.0f;
				slide_lock = false;
			}
		}
		
	}