diff --git a/scripts/Contents/Bullets/BigLaser.gd b/scripts/Contents/Bullets/BigLaser.gd index ce4cd6c..ef22405 100644 --- a/scripts/Contents/Bullets/BigLaser.gd +++ b/scripts/Contents/Bullets/BigLaser.gd @@ -10,9 +10,9 @@ func ai(): position = launcher.texture.global_position func applyDot(): hitbox.disabled = true - await TickTool.millseconds(50) + await TickTool.millseconds(100 / launcher.fields[FieldStore.Entity.ATTACK_SPEED]) hitbox.disabled = false - await TickTool.millseconds(50) + await TickTool.millseconds(100 / launcher.fields[FieldStore.Entity.ATTACK_SPEED]) BulletBase.generate( preload("res://components/Bullets/LaserPluse.tscn"), launcher, @@ -20,3 +20,5 @@ func applyDot(): rotation ) return true +func succeedToHit(_dmg: float): + fields[FieldStore.Bullet.DAMAGE] *= 1.1 diff --git a/scripts/Statemachine/BulletBase.gd b/scripts/Statemachine/BulletBase.gd index acc65b3..88b62a2 100644 --- a/scripts/Statemachine/BulletBase.gd +++ b/scripts/Statemachine/BulletBase.gd @@ -54,7 +54,8 @@ func hit(target: Node): if !canDamageSelf && entity == launcher: return if !indisDamage && !GameRule.allowFriendlyFire: if entity.isPlayer() == launcher.isPlayer(): return - entity.takeDamage(self, MathTool.rate(launcher.fields.get(FieldStore.Entity.CRIT_RATE) + GameRule.critRateInfluenceByLuckValue * launcher.fields[FieldStore.Entity.LUCK_VALUE])) + var damage = entity.takeDamage(self, MathTool.rate(launcher.fields.get(FieldStore.Entity.CRIT_RATE) + GameRule.critRateInfluenceByLuckValue * launcher.fields[FieldStore.Entity.LUCK_VALUE])) + succeedToHit(damage) if MathTool.rate(fullPenerate()): fields[FieldStore.Bullet.PENERATE] -= entity.fields[FieldStore.Entity.PENARATION_RESISTANCE] else: @@ -77,6 +78,8 @@ func spawn(): pass func applyDot(): pass +func succeedToHit(_dmg: float): + pass static func generate( bullet: PackedScene, diff --git a/scripts/Statemachine/EntityBase.gd b/scripts/Statemachine/EntityBase.gd index 12ecd51..3b8dc9d 100644 --- a/scripts/Statemachine/EntityBase.gd +++ b/scripts/Statemachine/EntityBase.gd @@ -151,6 +151,7 @@ func takeDamage(bullet: BulletBase, crit: bool): bullet.launcher.storeEnergy(energy * 0.35) bullet.launcher.setBoss(null) tryDie(bullet) + return damage func collectItem(itemType: ItemStore.ItemType, amount: int): inventory[itemType] += amount playSound("collect")