首页 > 其他分享 >Unity类银河恶魔城学习记录9-5 p93 Major stats and defensive stats源代码

Unity类银河恶魔城学习记录9-5 p93 Major stats and defensive stats源代码

时间:2024-03-13 20:02:13浏览次数:30  
标签:Major stats int Stat GetValue targetStats totleDamage 源代码 public

Alex教程每一P的教程原代码加上我自己的理解初步理解写的注释,可供学习Alex教程的人参考
此代码仅为较上一P有所改变的代码

【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili

CharacterStats.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class CharacterStats : MonoBehaviour
{
    [Header("Major stats")]
    public Stat strength; // 力量 增伤1点 临界值power 1% 物抗
    public Stat agility;// 敏捷 闪避 1% 临界chance 1%
    public Stat intelgence;// 1 点 魔法伤害 1点魔抗 
    public Stat vitality;//加血的

    [Header("Defensive stats")]
    public Stat maxHealth;
    public Stat armor;
    public Stat evasion;//闪避值


    public Stat damage;


    [SerializeField]private int currentHealth;


    protected virtual void Start()
    {
        currentHealth = maxHealth.GetValue();     
    }

    public virtual void DoDamage(CharacterStats _targetStats)
    {
        if (TargetCanAvoidAttack(_targetStats))
        {
            return;
        }


        int totleDamage = damage.GetValue() + strength.GetValue();

        totleDamage = CheckTargetArmor(_targetStats, totleDamage);

        _targetStats.TakeDamage(totleDamage);
    }

    private static int CheckTargetArmor(CharacterStats _targetStats, int totleDamage)
    {
        totleDamage -= _targetStats.armor.GetValue();
        totleDamage = Mathf.Clamp(totleDamage, 0, int.MaxValue);
        return totleDamage;
    }

    private bool TargetCanAvoidAttack(CharacterStats _targetStats)//设置闪避
    {
        int totleEvation = _targetStats.evasion.GetValue() + _targetStats.agility.GetValue();

        if (Random.Range(0, 100) < totleEvation)
        {
            return true;
        }
        return false;
    }

    protected virtual void TakeDamage(int _damage)
    {
        currentHealth -= _damage;

        Debug.Log(_damage);

        if (currentHealth < 0)
            Die();
        
    }

    protected virtual void Die()
    {

    }
}

标签:Major,stats,int,Stat,GetValue,targetStats,totleDamage,源代码,public
From: https://blog.csdn.net/Homura_/article/details/136689101

相关文章

  • 自动生成单元测试、外挂开源代码库等新功能,上线JetBrains IDEs的CodeGeeX插件!
    CodeGeeX第三代模型发布后,多项基于第三代模型能力的新功能今天也同步上线JetBrainsIDEs全家桶。用户可以在IDEA、PyCharm等JetBrains系的IDE中,搜索下载CodeGeeXv2.5.0版本,深度使用最新功能。一、新模型加持的代码补全和智能问答以IDEA为例,在v2.5.0版本的CodeGeeX插件中,用户可......
  • Android开发window安装Ubuntu虚拟机编译aosp安卓12源代码
    Window安装Ubuntu虚拟机编译aosp安卓12源代码1.安装VMWare虚拟机,以及安装Ubuntu1.1下载安装VMWare虚拟机下载地址和密钥,请见:https://www.cnblogs.com/yongfengnice/p/17413934.html1.2下载安装Ubuntuubuntu下载地址:https://ubuntu.com/download/alternative-dow......
  • 【Spark编程基础】实验二Spark和Hadoop的安装(附源代码)
    文章目录一、实验目的二、实验平台三、实验内容和要求1.HDFS常用操作2、Spark读取文件系统的数据四、实验过程一、实验目的(1)掌握在Linux虚拟机中安装Hadoop和Spark的方法;(2)熟悉HDFS的基本使用方法;(3)掌握使用Spark访问本地文件和HDFS文件的方法。二、......
  • Java高并发讲解:守护线程——在源代码中分析setDaemon()
    Java高并发讲解:守护线程——在源代码中分析setDaemon()提出问题我们都知道Java线程分为主线程和守护线程,守护线程是需要手动指定的(setDaemon(true)......
  • 网页浏览器Chrome开发者调试工具-Source(源代码)
    前言全局说明网页浏览器Chrome开发者调试工具-Source(源代码)一、网页浏览器Chrome开发者调试工具-Source(源代码)源码标签页,是用来查看整个网站打开过程中,都下载了那些文件。可以对文件进行断点调试,也可以对所有下载的文件进行搜索。二、关闭标签页在标签页上右键,可以......
  • 开源代码生成模型 StarCoder 2 全新上线!
    BigCode正式推出StarCoder2——一系列新一代的开放源代码大语言模型(LLMs)。这些模型全部基于一个全新、大规模且高品质的代码数据集TheStackv2进行训练。我们不仅公开了所有的模型和数据集,还包括了数据处理和训练代码的详细信息,详情请参阅相关论文。StarCoder2是什么......
  • 直播系统源代码,iOS端截屏时隐藏内容
    直播系统源代码,iOS禁止截屏,手机截屏时隐藏内容,或自定义截屏后的内容。核心是利用UITextField的secureTextEntry属性隐藏内容,注意该功能仅iOS13.2及以上支持。UITextField在开启密码模式后,在截屏录屏时隐藏一个子视图。注:模拟器左上角的截图不支持UITextField的密码隐藏。如果要......
  • 通过编译器输出汇编语言的源代码
    除了将本地代码进行反汇编这一方法外,通过其他方式也可以获取汇编语言的源代码。大部分C语言编译器,都可以把利用C语言编写的源代码转换成汇编语言的源代码,而不是本地代码。利用该功能,就可以对C语言的源代码和汇编语言的源代码进行比较研究。笔者在学生时代的报告中,使用的便是该功能......
  • CMS电影站源代码分析
    最近研究了一些CMS的电影站 最近研究了一些CMS,发现很多人都不知道cms的作用,甚至有些人根本不知道cms是什么东西。月亮岛影视今天就给大家介绍一下cms的作用。希望对大家有帮助。二十条在线下面我们一起来看一下。首先我们要了解cms的概念。cms是一个企业网站的基础设施,它可以帮......
  • LightDB-X 24.1 支持 Oracle DBMS_STATS.GATHER_TABLE_STATS 存储过程
    LightDB-X24.1支持OracleDBMS_STATS.GATHER_TABLE_STATS存储过程背景LightDB-X一直在不断提升对Oralce的兼容性,降低基于Oracle的业务系统迁移到LightDB-X的门槛。在24.1版本中支持了Oracle的DBMS_STATS.GATHER_TABLE_STATS存储过程,提高了对Oracle管理功能......