//================================================================
//
// Copyright (C) 东方同人社
// All Rights Reserved
//
// Author:小妖精Balous

//

//Summary:这次是符卡系统,这个系统能完成绝大多数符卡,算是比较通用的了
//
//================================================================

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

/// <summary>
/// 符卡,Boss会迅速移动到起始位置,然后进入第一个状态
/// </summary>
public class SpellCard : State<Boss>
{
/// <summary>
/// 符卡,Boss会迅速移动到起始位置,然后进入第一个状态
/// </summary>
/// <param name="_state">进入符卡后第一个状态</param>
/// <param name="_startPlace">进入符卡的起始位置</param>
/// <param name="_spellCardTime">符卡持续时间</param>
/// <param name="_lifeMax">符卡生命值</param>
public SpellCard(State<Boss> _state, Vector2 _startPlace, float _spellCardTime, int _lifeMax)
{
state = _state;
startPlace = _startPlace;
spellCardTime = _spellCardTime;
lifeMax = _lifeMax;
}

private Vector2 startPlace;
private float spellCardTime;
private int lifeMax;
private State<Boss> state;

private static float moveSpeed = 9.6f;

public override void Enter(Boss owner)
{
owner.lifeMax = lifeMax;
owner.life = lifeMax;
owner.invincible = true;
}

public override void Execute(Boss owner)
{
float distance = Vector2.Distance(new Vector2(owner.transform.position.x, owner.transform.position.y), startPlace);
if (distance < 0.03f)
{
owner.stateMachine.currentState = state;
return;
}

Vector2 direction = new Vector2(startPlace.x - owner.transform.position.x, startPlace.y - owner.transform.position.y).normalized;
owner.transform.Translate(new Vector3(direction.x, direction.y) * Time.deltaTime * moveSpeed);
}

public override void Exit(Boss owner)
{
owner.spellCardTime = spellCardTime;
owner.invincible = false;
}
}

小妖精的完美游戏教室——东方PROJECT,同人,符卡系统的更多相关文章

  1. 小妖精的完美游戏教室——东方project,同人,自机

    //================================================================ //// Copyright (C)// All Rights R ...

  2. 小妖精的完美游戏教室——东方PROJECT,同人,墙

    //================================================================//// Copyright (C) 东方同人社// All Rig ...

  3. 小妖精的完美游戏教室——东方PROJECT,同人,th12灵梦A

    ╮(╯▽╰)╭没办法,小妖精Balous也很讨厌学院化的教育呀,一点意义都没有. 这次就上传东方地灵殿灵梦A逻辑部分的核心代码吧,估计连老师都看不懂.动画部分的代码就不放上来了. //======== ...

  4. 小妖精的完美游戏教室——东方PROJECT,同人,子机

    //================================================================//// Copyright (C)// All Rights Re ...

  5. 小妖精的完美游戏教室——人工智能,A*算法,引言

    今天也要直播魔法,求科学的! 欢迎来到小妖精Balous的完美游戏教室! 经过前两周的学习,相信米娜桑已经对状态机有所了解了呢~虽然状态机能够实现几乎所有的人工智能,但是,在实践中,你们有没有发现,自 ...

  6. 小妖精的完美游戏教室——人工智能,A*算法,启发因子篇

    //================================================================//// Copyright (C) 2017 Team Saluk ...

  7. 小妖精的完美游戏教室——人工智能,A*算法,导航网络篇

    //================================================================//// Copyright (C) 2017 Team Saluk ...

  8. 小妖精的完美游戏教室——人工智能,A*算法,结点篇

    //================================================================//// Copyright (C) 2017 Team Saluk ...

  9. 小妖精的完美游戏教室——人工智能,A*算法,实现篇

    //================================================================//// Copyright (C) 2017 Team Saluk ...

随机推荐

  1. WPF listbox实现多列显示数据

    一.每行显示固定列数 <ListBox ItemsSource="{Binding DataList}" Style="{DynamicResource ListB ...

  2. unity中编辑器直接截屏代码

    using UnityEngine; using System.Collections; using System.Windows.Forms; public class screenshots : ...

  3. 阿里云服务器报 Liunx异常文件下载处理办法

    阿里云服务器报 Liunx异常文件下载.挖矿进程.SSH远程非交互式一句话异常指令执行 清除办法 1.删除crontab里面的自启动脚本 2.删除authorized_keys 里面密匙 3.删除#/ ...

  4. OSI,TCP/IP,五层协议的体系结构,以及各层协议

    OSI分层 (7层):物理层.数据链路层.网络层.传输层.会话层.表示层.应用层. TCP/IP分层(4层):网络接口层. 网际层.运输层. 应用层. 五层协议 (5层):物理层.数据链路层.网络层. ...

  5. 算法面试题(python)——如何找出数组中出现一次的数

    题目描述: 一个数组里,除了三个数是唯一出现的,其余的数都出现了偶数次,找出这三个数中任意一个.比如数组序列为[1,2,4,5,6,4,2],只有1.5.6这三个数字是唯一出现的,数字2.4均出现了偶 ...

  6. How to convert Word table into Excel using OpenXML

    原文出处:https://code.msdn.microsoft.com/How-to-convert-Word-table-0cb4c9c3 class Program { static void ...

  7. shell脚本中给字符串添加颜色

    shell脚本中echo显示内容带颜色显示,echo显示带颜色,需要使用参数-e 格式如下: echo -e "\033[字背景颜色:文字颜色m字符串\033[0m" 例如: ec ...

  8. JAVAEE 第八周

    equals():反映的是对象或变量具体的值,即两个对象里面包含的值--可能是对象的引用,也可能是值类型的值. hashCode():计算出对象实例的哈希码,并返回哈希码,又称为散列函数.根类Obje ...

  9. angular $resouse服务

    创建服务 var taskInstancesResource = function ($resource) { var resource = $resource('/ssc-cutover/rest/ ...

  10. Git clone出现SSL certificate problem

    1 可以在cmd下,设置 git config --global http.sslVerify false git clone  XXX 即可. 2 TortoiseGit设置 打开TortoiseG ...