void FixedUpdate() { activeAbility = (quincy_ability)abilitySelector.getSelectedAbility(); if (Input.GetKeyDown(KeyCode.Q) && PoPCamera.State == PoPCamera.CameraState.TargetLock) { try_ability(activeAbility); } }
/*! * This will call the apropriate behavior function in the Item class of an object. * @param ability The ability type for wich it will call the apropriate function in Item. * @param newTarget Optional parameter if you wish to use this function on an object that is not the camera target. */ void try_ability(quincy_ability ability, GameObject newTarget = null) { if (ability_ready(ability)) { GameObject target = PoPCamera.instance.CurrentTarget(); if (target && target.GetComponent <Item>()) { Item script = target.GetComponent <Item>(); switch (ability) { case quincy_ability.Cut: script.Cut(); break; case quincy_ability.SoundThrow: script.SoundThrow(soundRange); break; case quincy_ability.Stun: script.Stun(stunTime); break; case quincy_ability.Push: script.Push(gameObject.transform.position, pushDistance, pushRange); break; case quincy_ability.Pull: script.Pull(gameObject.transform.position, pushDistance, pullRange); break; case quincy_ability.Heat: script.Heat(); break; case quincy_ability.Cool: script.Cool(); break; case quincy_ability.Blast: script.Blast(); break; } } } }
void FixedUpdate() { activeAbility = (quincy_ability)abilitySelector.getSelectedAbility(); if(Input.GetKeyDown(KeyCode.Q) && PoPCamera.State == PoPCamera.CameraState.TargetLock) { try_ability(activeAbility); } }
/*! * Checks if the given ability is ready to be used, and if it is, resets the cooldown. * @param ability The ability that is checked. */ bool ability_ready(quincy_ability ability){ switch (ability) { case quincy_ability.Cut: if(Time.time > nextCut){ nextCut = Time.time + cutRate; return true; } else return false; case quincy_ability.SoundThrow: if(Time.time > nextSound){ nextSound = Time.time + soundRate; return true; } else return false; case quincy_ability.Stun: if(Time.time > nextStun){ nextStun = Time.time + stunRate; return true; } else return false; case quincy_ability.Push: if(Time.time > nextPush){ nextPush = Time.time + pushRate; return true; } else return false; case quincy_ability.Pull: if(Time.time > nextPull){ nextPull = Time.time + pullRate; return true; } else return false; case quincy_ability.Heat: if(Time.time > nextHeat){ nextHeat = Time.time + heatRate; return true; } else return false; case quincy_ability.Cool: if(Time.time > nextCold){ nextCold = Time.time + coldRate; return true; } else return false; case quincy_ability.Blast: if(Time.time > nextBlast){ nextBlast = Time.time + blastRate; return true; } else return false; default: return false; } }
/*! * This will call the apropriate behavior function in the Item class of an object. * @param ability The ability type for wich it will call the apropriate function in Item. * @param newTarget Optional parameter if you wish to use this function on an object that is not the camera target. */ void try_ability(quincy_ability ability, GameObject newTarget = null){ if (ability_ready (ability)) { GameObject target = PoPCamera.instance.CurrentTarget(); if(target && target.GetComponent<Item>()){ Item script = target.GetComponent<Item>(); switch(ability){ case quincy_ability.Cut: script.Cut(); break; case quincy_ability.SoundThrow: script.SoundThrow(soundRange); break; case quincy_ability.Stun: script.Stun(stunTime); break; case quincy_ability.Push: script.Push(gameObject.transform.position, pushDistance, pushRange); break; case quincy_ability.Pull: script.Pull(gameObject.transform.position, pushDistance, pullRange); break; case quincy_ability.Heat: script.Heat(); break; case quincy_ability.Cool: script.Cool(); break; case quincy_ability.Blast: script.Blast(); break; } } } }
public override void OnInspectorGUI() { EditorGUI.BeginChangeCheck(); EditorGUILayout.BeginHorizontal(); GUILayout.Label("Settings for:", GUILayout.MaxWidth(80)); selected_ability = (quincy_ability)EditorGUILayout.EnumPopup(selected_ability); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); quinc_target.abilitySelector = (AbilityDockController)EditorGUILayout.ObjectField(quinc_target.abilitySelector, typeof(AbilityDockController), true); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginVertical(); switch (selected_ability) { case quincy_ability.Push: EditorGUILayout.BeginHorizontal(); GUILayout.Label("Reload Time:", GUILayout.MaxWidth(80)); quinc_target.pushRate = EditorGUILayout.Slider(quinc_target.pushRate, 0.0f, 50.0f); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); GUILayout.Label("Force:", GUILayout.MaxWidth(80)); quinc_target.pushDistance = EditorGUILayout.Slider(quinc_target.pushDistance, 0.0f, 50.0f); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); GUILayout.Label("Range:", GUILayout.MaxWidth(80)); quinc_target.pushRange = EditorGUILayout.Slider(quinc_target.pushRange, 0.0f, 50.0f); EditorGUILayout.EndHorizontal(); break; case quincy_ability.Pull: EditorGUILayout.BeginHorizontal(); GUILayout.Label("Reload Time:", GUILayout.MaxWidth(80)); quinc_target.pullRate = EditorGUILayout.Slider(quinc_target.pullRate, 0.0f, 50.0f); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); GUILayout.Label("Force:", GUILayout.MaxWidth(80)); quinc_target.pullDistance = EditorGUILayout.Slider(quinc_target.pullDistance, 0.0f, 50.0f); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); GUILayout.Label("Range:", GUILayout.MaxWidth(80)); quinc_target.pullRange = EditorGUILayout.Slider(quinc_target.pullRange, 0.0f, 50.0f); EditorGUILayout.EndHorizontal(); break; case quincy_ability.Cut: EditorGUILayout.BeginHorizontal(); GUILayout.Label("Reload Time:", GUILayout.MaxWidth(80)); quinc_target.cutRate = EditorGUILayout.Slider(quinc_target.cutRate, 0.0f, 50.0f); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); GUILayout.Label("Range:", GUILayout.MaxWidth(80)); quinc_target.cutRange = EditorGUILayout.Slider(quinc_target.cutRange, 0.0f, 50.0f); EditorGUILayout.EndHorizontal(); break; case quincy_ability.SoundThrow: EditorGUILayout.BeginHorizontal(); GUILayout.Label("Reload Time:", GUILayout.MaxWidth(80)); quinc_target.soundRate = EditorGUILayout.Slider(quinc_target.soundRate, 0.0f, 50.0f); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); GUILayout.Label("Range:", GUILayout.MaxWidth(80)); quinc_target.soundRange = EditorGUILayout.Slider(quinc_target.soundRange, 0.0f, 50.0f); EditorGUILayout.EndHorizontal(); break; case quincy_ability.Stun: EditorGUILayout.BeginHorizontal(); GUILayout.Label("Reload Time:", GUILayout.MaxWidth(80)); quinc_target.stunRate = EditorGUILayout.Slider(quinc_target.stunRate, 0.0f, 50.0f); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); GUILayout.Label("Range:", GUILayout.MaxWidth(80)); quinc_target.stunRange = EditorGUILayout.Slider(quinc_target.stunRange, 0.0f, 50.0f); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); GUILayout.Label("Stun Time:", GUILayout.MaxWidth(80)); quinc_target.stunTime = EditorGUILayout.Slider(quinc_target.stunTime, 0.0f, 50.0f); EditorGUILayout.EndHorizontal(); break; case quincy_ability.Cool: EditorGUILayout.BeginHorizontal(); GUILayout.Label("Reload Time:", GUILayout.MaxWidth(80)); quinc_target.coldRate = EditorGUILayout.Slider(quinc_target.coldRate, 0.0f, 50.0f); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); GUILayout.Label("Range:", GUILayout.MaxWidth(80)); quinc_target.coldRange = EditorGUILayout.Slider(quinc_target.coldRange, 0.0f, 50.0f); EditorGUILayout.EndHorizontal(); break; case quincy_ability.Heat: EditorGUILayout.BeginHorizontal(); GUILayout.Label("Reload Time:", GUILayout.MaxWidth(80)); quinc_target.heatRate = EditorGUILayout.Slider(quinc_target.heatRate, 0.0f, 50.0f); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); GUILayout.Label("Range:", GUILayout.MaxWidth(80)); quinc_target.heatRange = EditorGUILayout.Slider(quinc_target.heatRange, 0.0f, 50.0f); EditorGUILayout.EndHorizontal(); break; } EditorGUILayout.EndVertical(); EditorGUI.EndChangeCheck(); }
void OnEnable() { quinc_target = (Quinc)target; selected_ability = quincy_ability.Push; }
/*! * Checks if the given ability is ready to be used, and if it is, resets the cooldown. * @param ability The ability that is checked. */ bool ability_ready(quincy_ability ability) { switch (ability) { case quincy_ability.Cut: if (Time.time > nextCut) { nextCut = Time.time + cutRate; return(true); } else { return(false); } case quincy_ability.SoundThrow: if (Time.time > nextSound) { nextSound = Time.time + soundRate; return(true); } else { return(false); } case quincy_ability.Stun: if (Time.time > nextStun) { nextStun = Time.time + stunRate; return(true); } else { return(false); } case quincy_ability.Push: if (Time.time > nextPush) { nextPush = Time.time + pushRate; return(true); } else { return(false); } case quincy_ability.Pull: if (Time.time > nextPull) { nextPull = Time.time + pullRate; return(true); } else { return(false); } case quincy_ability.Heat: if (Time.time > nextHeat) { nextHeat = Time.time + heatRate; return(true); } else { return(false); } case quincy_ability.Cool: if (Time.time > nextCold) { nextCold = Time.time + coldRate; return(true); } else { return(false); } case quincy_ability.Blast: if (Time.time > nextBlast) { nextBlast = Time.time + blastRate; return(true); } else { return(false); } default: return(false); } }
override public void OnInspectorGUI() { EditorGUI.BeginChangeCheck(); EditorGUILayout.BeginHorizontal(); GUILayout.Label("Settings for:", GUILayout.MaxWidth(80)); selected_ability = (quincy_ability)EditorGUILayout.EnumPopup(selected_ability); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); quinc_target.abilitySelector = (AbilityDockController)EditorGUILayout.ObjectField(quinc_target.abilitySelector, typeof(AbilityDockController), true); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginVertical(); switch (selected_ability) { case quincy_ability.Push: EditorGUILayout.BeginHorizontal(); GUILayout.Label("Reload Time:", GUILayout.MaxWidth(80)); quinc_target.pushRate = EditorGUILayout.Slider(quinc_target.pushRate, 0.0f, 50.0f); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); GUILayout.Label("Force:", GUILayout.MaxWidth(80)); quinc_target.pushDistance = EditorGUILayout.Slider(quinc_target.pushDistance, 0.0f, 50.0f); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); GUILayout.Label("Range:", GUILayout.MaxWidth(80)); quinc_target.pushRange = EditorGUILayout.Slider(quinc_target.pushRange, 0.0f, 50.0f); EditorGUILayout.EndHorizontal(); break; case quincy_ability.Pull: EditorGUILayout.BeginHorizontal(); GUILayout.Label("Reload Time:", GUILayout.MaxWidth(80)); quinc_target.pullRate = EditorGUILayout.Slider(quinc_target.pullRate, 0.0f, 50.0f); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); GUILayout.Label("Force:", GUILayout.MaxWidth(80)); quinc_target.pullDistance = EditorGUILayout.Slider(quinc_target.pullDistance, 0.0f, 50.0f); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); GUILayout.Label("Range:", GUILayout.MaxWidth(80)); quinc_target.pullRange = EditorGUILayout.Slider(quinc_target.pullRange, 0.0f, 50.0f); EditorGUILayout.EndHorizontal(); break; case quincy_ability.Cut: EditorGUILayout.BeginHorizontal(); GUILayout.Label("Reload Time:", GUILayout.MaxWidth(80)); quinc_target.cutRate = EditorGUILayout.Slider(quinc_target.cutRate, 0.0f, 50.0f); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); GUILayout.Label("Range:", GUILayout.MaxWidth(80)); quinc_target.cutRange = EditorGUILayout.Slider(quinc_target.cutRange, 0.0f, 50.0f); EditorGUILayout.EndHorizontal(); break; case quincy_ability.SoundThrow: EditorGUILayout.BeginHorizontal(); GUILayout.Label("Reload Time:", GUILayout.MaxWidth(80)); quinc_target.soundRate = EditorGUILayout.Slider(quinc_target.soundRate, 0.0f, 50.0f); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); GUILayout.Label("Range:", GUILayout.MaxWidth(80)); quinc_target.soundRange = EditorGUILayout.Slider(quinc_target.soundRange, 0.0f, 50.0f); EditorGUILayout.EndHorizontal(); break; case quincy_ability.Stun: EditorGUILayout.BeginHorizontal(); GUILayout.Label("Reload Time:", GUILayout.MaxWidth(80)); quinc_target.stunRate = EditorGUILayout.Slider(quinc_target.stunRate, 0.0f, 50.0f); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); GUILayout.Label("Range:", GUILayout.MaxWidth(80)); quinc_target.stunRange = EditorGUILayout.Slider(quinc_target.stunRange, 0.0f, 50.0f); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); GUILayout.Label("Stun Time:", GUILayout.MaxWidth(80)); quinc_target.stunTime = EditorGUILayout.Slider(quinc_target.stunTime, 0.0f, 50.0f); EditorGUILayout.EndHorizontal(); break; case quincy_ability.Cool: EditorGUILayout.BeginHorizontal(); GUILayout.Label("Reload Time:", GUILayout.MaxWidth(80)); quinc_target.coldRate = EditorGUILayout.Slider(quinc_target.coldRate, 0.0f, 50.0f); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); GUILayout.Label("Range:", GUILayout.MaxWidth(80)); quinc_target.coldRange = EditorGUILayout.Slider(quinc_target.coldRange, 0.0f, 50.0f); EditorGUILayout.EndHorizontal(); break; case quincy_ability.Heat: EditorGUILayout.BeginHorizontal(); GUILayout.Label("Reload Time:", GUILayout.MaxWidth(80)); quinc_target.heatRate = EditorGUILayout.Slider(quinc_target.heatRate, 0.0f, 50.0f); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); GUILayout.Label("Range:", GUILayout.MaxWidth(80)); quinc_target.heatRange = EditorGUILayout.Slider(quinc_target.heatRange, 0.0f, 50.0f); EditorGUILayout.EndHorizontal(); break; } EditorGUILayout.EndVertical(); EditorGUI.EndChangeCheck(); }