根据提供的code differences信息,由于没有具体的代码变更内容,我将生成一个通用的commit message模板:
``` docs(readme): 更新文档说明 - 添加项目使用指南 - 完善API接口描述 - 修正错误的配置示例 ``` 注意:由于您提供的code differences部分为空,无法确定具体的变更类型和范围。实际使用时请根据真实变更内容替换相应的type、scope、subject和body信息。
This commit is contained in:
1 parent
bbf8f40e38
commit
e127da5416
42 files changed
+1095
-106
No files matched your search
@@ -0,0 +1,160 @@
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
|
||||
/// <summary>
|
||||
/// 玩家技能系统(召唤师技能)
|
||||
/// 管理技能释放和冷却
|
||||
/// </summary>
|
||||
public class PlayerSkillSystem : MonoBehaviour
|
||||
{
|
||||
[Header("技能1:群体治疗")]
|
||||
public Button skill1Button;
|
||||
public Text skill1CooldownText;
|
||||
public float skill1Cooldown = 20f;
|
||||
public float skill1HealAmount = 100f;
|
||||
private float skill1RemainingCooldown = 0f;
|
||||
|
||||
[Header("技能2:全屏AOE")]
|
||||
public Button skill2Button;
|
||||
public Text skill2CooldownText;
|
||||
public float skill2Cooldown = 20f;
|
||||
public float skill2Damage = 80f;
|
||||
private float skill2RemainingCooldown = 0f;
|
||||
|
||||
private void Start()
|
||||
{
|
||||
// 绑定按钮点击事件
|
||||
if (skill1Button != null)
|
||||
{
|
||||
skill1Button.onClick.AddListener(UseSkill1);
|
||||
}
|
||||
|
||||
if (skill2Button != null)
|
||||
{
|
||||
skill2Button.onClick.AddListener(UseSkill2);
|
||||
}
|
||||
}
|
||||
|
||||
private void Update()
|
||||
{
|
||||
// 更新技能1冷却
|
||||
if (skill1RemainingCooldown > 0)
|
||||
{
|
||||
skill1RemainingCooldown -= Time.deltaTime;
|
||||
if (skill1Button != null)
|
||||
{
|
||||
skill1Button.interactable = false;
|
||||
}
|
||||
if (skill1CooldownText != null)
|
||||
{
|
||||
skill1CooldownText.text = Mathf.CeilToInt(skill1RemainingCooldown).ToString();
|
||||
skill1CooldownText.gameObject.SetActive(true);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (skill1Button != null)
|
||||
{
|
||||
skill1Button.interactable = true;
|
||||
}
|
||||
if (skill1CooldownText != null)
|
||||
{
|
||||
skill1CooldownText.gameObject.SetActive(false);
|
||||
}
|
||||
}
|
||||
|
||||
// 更新技能2冷却
|
||||
if (skill2RemainingCooldown > 0)
|
||||
{
|
||||
skill2RemainingCooldown -= Time.deltaTime;
|
||||
if (skill2Button != null)
|
||||
{
|
||||
skill2Button.interactable = false;
|
||||
}
|
||||
if (skill2CooldownText != null)
|
||||
{
|
||||
skill2CooldownText.text = Mathf.CeilToInt(skill2RemainingCooldown).ToString();
|
||||
skill2CooldownText.gameObject.SetActive(true);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (skill2Button != null)
|
||||
{
|
||||
skill2Button.interactable = true;
|
||||
}
|
||||
if (skill2CooldownText != null)
|
||||
{
|
||||
skill2CooldownText.gameObject.SetActive(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 使用技能1:群体治疗
|
||||
/// </summary>
|
||||
public void UseSkill1()
|
||||
{
|
||||
if (skill1RemainingCooldown > 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
Debug.Log($"释放技能1:群体治疗(恢复 {skill1HealAmount} 生命)");
|
||||
|
||||
// 对所有友方单位施加治疗
|
||||
BuffSystem.Instance.ApplyGroupHeal(skill1HealAmount);
|
||||
|
||||
// 开始冷却
|
||||
skill1RemainingCooldown = skill1Cooldown;
|
||||
|
||||
// TODO: 播放技能特效
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 使用技能2:全屏AOE伤害
|
||||
/// </summary>
|
||||
public void UseSkill2()
|
||||
{
|
||||
if (skill2RemainingCooldown > 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
Debug.Log($"释放技能2:全屏AOE(造成 {skill2Damage} 伤害)");
|
||||
|
||||
// 对所有敌方单位造成伤害
|
||||
var enemies = FindObjectsOfType<UnitBase>();
|
||||
int hitCount = 0;
|
||||
|
||||
foreach (var unit in enemies)
|
||||
{
|
||||
var team = unit.GetComponent<UnitTeam>();
|
||||
if (team != null && team.teamId == 1) // 敌方
|
||||
{
|
||||
var healthBar = unit.GetComponent<WorldHealthBar>();
|
||||
if (healthBar != null && !healthBar.IsDead)
|
||||
{
|
||||
healthBar.TakeDamage(skill2Damage);
|
||||
hitCount++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Debug.Log($"全屏AOE命中 {hitCount} 个敌人");
|
||||
|
||||
// 开始冷却
|
||||
skill2RemainingCooldown = skill2Cooldown;
|
||||
|
||||
// TODO: 播放技能特效
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 重置所有技能冷却(测试用)
|
||||
/// </summary>
|
||||
public void ResetAllCooldowns()
|
||||
{
|
||||
skill1RemainingCooldown = 0f;
|
||||
skill2RemainingCooldown = 0f;
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user