mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-06-13 12:04:06 +09:00
weponmeleecore
This commit is contained in:
@@ -58,7 +58,7 @@ public class AppLoader implements ApplicationListener {
|
||||
* <p>
|
||||
* e.g. 0x02010034 will be translated as 2.1.52
|
||||
*/
|
||||
public static final int VERSION_RAW = 0x00_02_04B1;
|
||||
public static final int VERSION_RAW = 0x00_02_0590;
|
||||
|
||||
public static final String getVERSION_STRING() {
|
||||
return String.format("%d.%d.%d", VERSION_RAW >>> 24, (VERSION_RAW & 0xff0000) >>> 16, VERSION_RAW & 0xFFFF);
|
||||
@@ -596,7 +596,13 @@ public class AppLoader implements ApplicationListener {
|
||||
);
|
||||
fontSmallNumbers = TinyAlphNum.INSTANCE;
|
||||
|
||||
audioDevice = Gdx.audio.newAudioDevice(48000, false);
|
||||
try {
|
||||
audioDevice = Gdx.audio.newAudioDevice(48000, false);
|
||||
}
|
||||
catch (NullPointerException deviceInUse) {
|
||||
deviceInUse.printStackTrace();
|
||||
System.err.println("[AppLoader] failed to create audio device: Audio device occupied by Exclusive Mode Device? (e.g. ASIO4all)");
|
||||
}
|
||||
|
||||
// if there is a predefined screen, open that screen after my init process
|
||||
if (injectScreen != null) {
|
||||
|
||||
@@ -48,7 +48,7 @@ abstract class GameItem : Comparable<GameItem>, Cloneable {
|
||||
|
||||
var nameColour = Color.WHITE
|
||||
|
||||
/** In kg */
|
||||
/** In kg. Weapon with different material must have different mass. In this case, you MUST use IRON as a reference (or default) material. */
|
||||
abstract var baseMass: Double
|
||||
|
||||
/** In kg */
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
package net.torvald.terrarum.modulebasegame.items
|
||||
|
||||
import net.torvald.random.Fudge3
|
||||
import net.torvald.random.HQRNG
|
||||
import net.torvald.terrarum.itemproperties.GameItem
|
||||
import net.torvald.terrarum.modulebasegame.gameactors.ActorHumanoid
|
||||
import kotlin.math.pow
|
||||
|
||||
/**
|
||||
* Created by minjaesong on 2019-03-17.
|
||||
*/
|
||||
object WeaponMeleeCore {
|
||||
|
||||
val SQRT2 = Math.sqrt(2.0)
|
||||
|
||||
private val dF3 = Fudge3(HQRNG())
|
||||
private val randomiser = doubleArrayOf(0.94, 0.96, 0.98, 1.0, 1.02, 1.04, 1.06)
|
||||
|
||||
private fun randomise() = dF3.rollForArray(randomiser)
|
||||
private fun getAttackMomentum(weapon: WeaponMeleeBase, actor: ActorHumanoid) =
|
||||
weapon.mass * weapon.material.density * weapon.velocityMod * actor.scale.pow(SQRT2) // TODO multiply racial strength from RaceCodex
|
||||
fun getAttackPower(weapon: WeaponMeleeBase, actor: ActorHumanoid, actee: ActorHumanoid) =
|
||||
getAttackMomentum(weapon, actor) * randomise() * maxOf(1.0, (actee.hitbox.endY - actor.hitbox.startY) / actee.hitbox.height)
|
||||
|
||||
}
|
||||
|
||||
abstract class WeaponMeleeBase : GameItem() {
|
||||
abstract val velocityMod: Double
|
||||
}
|
||||
Reference in New Issue
Block a user