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; } }
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; } } }