GithubHelp home page GithubHelp logo

cheeeeeeeeeen / chens-gradius-mod Goto Github PK

View Code? Open in Web Editor NEW
9.0 9.0 3.0 26.43 MB

Chen's tModLoader mod in implementing stuff based from the Gradius series.

Home Page: https://forums.terraria.org/index.php?threads/chens-gradius-mod.83289/

License: GNU Affero General Public License v3.0

C# 100.00%
blancfaye7 chen gradius mod r-type salamander terraria tmodloader

chens-gradius-mod's People

Contributors

cheeeeeeeeeen avatar natemccloud avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

chens-gradius-mod's Issues

Force: Attached Mode movement

  • When attached, the Force must stick to the player's either side.

  • When being pulled for attachment, the Force will ignore any tiles and will slowly go near the player

  • Touching the Force will attach it to the player.

Options need to be equipped in order

The options will bug out if they aren't equipped in the correct order.

1, 2, 3, 4 - Correct
4, 3, 2, 1 - Only one option is deployed
1, 3, 2, 4 - 3 options, third option missing

Implement Bit Devices

Bit Devices are from R-Type. They are smaller versions of the Force.

  • They hover above and below the player
  • Only max of two is allowed
  • Sensitive to Terrain
  • Contact damage
  • Support fire?

World Enter: 2 Forces

This causes bugs as the Forces will behave weird.

For now, the workaround is to unequip all embryos, and the equip one. Equipping two will not spawn the other force as expected.

This will be patched on the next major update.

Silent Exception caught

System.NullReferenceException: Object reference not set to an instance of an object.
   at ChensGradiusMod.GradiusModPlayer.MakeForceBattle() in ChensGradiusMod\GradiusModPlayer.cs:line 134
   at ChensGradiusMod.GradiusModPlayer.OnHitNPCWithProj(Projectile proj, NPC target, Int32 damage, Single knockback, Boolean crit) in ChensGradiusMod\GradiusModPlayer.cs:line 120
   at Terraria.ModLoader.PlayerHooks.OnHitNPCWithProj(Projectile proj, NPC target, Int32 damage, Single knockback, Boolean crit)
   at Terraria.Projectile.Damage()
   at Terraria.Projectile.Update(Int32 i)
   at Terraria.Main.DoUpdate(GameTime gameTime)
   at Terraria.Main.Update(GameTime gameTime)
   at Microsoft.Xna.Framework.Game.Tick()
   at Microsoft.Xna.Framework.Game.HostIdle(Object sender, EventArgs e)
   at Microsoft.Xna.Framework.GameHost.OnIdle()
   at Microsoft.Xna.Framework.WindowsGameHost.RunOneFrame()
   at Microsoft.Xna.Framework.WindowsGameHost.ApplicationIdle(Object sender, EventArgs e)
   at System.Windows.Forms.Application.ThreadContext.System.Windows.Forms.UnsafeNativeMethods.IMsoComponent.FDoIdle(Int32 grfidlef)
   at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
   at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
   at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
   at System.Windows.Forms.Application.Run(Form mainForm)
   at Microsoft.Xna.Framework.WindowsGameHost.Run()
   at Microsoft.Xna.Framework.Game.RunGame(Boolean useBlockingRun)
   at Terraria.Program.LaunchGame_()
   at Terraria.Program.LaunchGame(String[] args, Boolean monoArgs)
   at Terraria.WindowsLaunch.Main(String[] args)```

Force attack power

The attack power of the Force should be based on the held weapon of the player.

Needle Force

Implement the Needle Force.

  • Behaves like the regular Force
  • Different Attack Pattern
  • Detached 360 attack pattern switches direction on reattachment

Implement Rotate Option

Implement the Option with rotate mode from Gradius V.

  • When holding hotkey, all options will gather in front of player.
  • Once all options are gathered, the first option will move in rotation, then followed by the second, then third, then fourth.
  • Releasing hotkey will stop them in their position.
  • The algorithm to make them follow a flight path again must be devised: and they should not snap positions.
  • Toggling again in the hotkey switches rotation direction.
  • Make the rotation faster by not waiting for options to line up.
  • Assign proper recipes

Option Movement

Related Issue: #1

Implement movement of Options to copy the player.

Option Attack Pattern

Related Issue: #1

Implement the attack patterns to copy all player projectiles.

This is hard to implement, and may be cancelled. See more information in #1.

Option Upgrade: Freeze

Implement Option's freeze mechanic from Gradius V into the mod.

  • Hotkey dedicated for Option actions (including other upgrades)
  • Freeze behavior when option key is pressed
  • Allow it to be an acquirable upgrade
  • Limit Options to only be equipped under one mode, and none other.

Add recipes for options and force

Title.

Ideas:

force available post brain/eow
option 4 is available post plantera
option 3 is available with hallowed bars
option 2 is available after wall of flesh
option 1 is available after skeletron

Syncing Force and Option

Multiplayer issues of desync. It is automatically happening due to not implementing sync code.

  • Force is not updating its state on other players
  • Options are not updating their state on other players
  • The options duplicate shots
  • each option seems to have a secondary option on the others screen and these options shoot 1-3 projectiles instead of just 1

Some of these might not be sync issues

Force Battle mode

The force battle mode is only triggered when the player hits an enemy.

It can stay this way, but a better implementation would be to let it be in battle mode when the player swings their weapon.

Temporary Force Accessory

A Temporary force accessory to allow toggling of the Force.

There will be other plans for it in the future.

Normal Missiles

Implement Normal Missiles from Gradius. They should crawl on the ground and are able to damage enemies.

Force Movement

Related Issue: #16

Implement the movement behavior of the Force.

2 types of movement: Detached Mode and Attached Mode

  • Detached Mode (#21)

    • it is where the Force attempts to stay a distance away from the player.
    • It has it's own movement pattern:
      • X coordinate is always updated first
      • When the X Coordinate is equal to the specified, or correct, distance, then the Y coordinate will be updated.
      • The Force cannot move diagonally, except when launched for detaching or pulled for attaching.
  • Attached Mode

    • It is where the Force stays near the player, either on the left or right depending on where it is touched for attaching.
    • The Force copies and stays on their position until detached
  • From Attach to Detach: The player must Launch the Force and the Force will attempt to go launch itself horizntoally, ramming enemies in the process.

  • From Detach to Attach: The player must move closer to the Force and touch it. The player may also Pull the Force closer to them.

Victory Viper Armor

The Victory Viper armor set should be a set that is upgradeable to scale as the game progresses.

The main feature of the set is to avail the Power Meter system (#18)

Sprites are needed for this one. (#13)

Force Attack Pattern

  • Direct contact
    • Any enemy who comes in contact will receive damage.
  • Long Ranged attacks
    • Attached Mode: Forward light bullets
    • Detached Mode: 4-way light bullets
      • This also includes:
        • Pulling Mode
        • Launching Mode

Second Option Bug

Unequipping the 2nd Option accessory retains the second option on the field. Only by removing the first option can all options be removed.

Options/Multiples

Implement an 'object' that behaves the same as the Option/Multiple from Gradius.

Individual Option Drone Inventory Sprite

I want the inventory sprites to be different.

Like it is an actual drone. Rotate, regular and freeze options will have different sprites.

Their numbering should also be in the sprite.

For example,
Freeze option will have an inventory sprite.
Rotate option will also have its own inventory sprite.
These sprites will be used for their 1, 2, 3 and 4 versions except what differs now is the numbering.

Option Rule List

Options will not do anything if specific items are used.

This exists because of #10.

Rainbow Gun might also be banned from the bugs it generates. (#6)


Source of problem:

The Options do copy even modded projectiles from other mods, which is great. This comes with a cost, however. Due to mod creator's unique way of coding projectile code, the options may not behave properly, and may duplicate and copy generated projectiles created by another friendly projectile.

Power Meter System

Implement a Power Meter System for those who have the Victory Viper Set.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.