diff --git a/components/Weapons/Volcano.tscn b/components/Weapons/Volcano.tscn index 6d59edb..ffc3c01 100644 --- a/components/Weapons/Volcano.tscn +++ b/components/Weapons/Volcano.tscn @@ -10,11 +10,12 @@ avatarTexture = ExtResource("2_hh01t") displayName = "火山" quality = 3 typeTopic = 2 +costBeachball = 300 store = { -"atk": 20, -"count": 1.0, +"atk": 25, +"count": 2.0, "life": 5, -"rotate": 2.0 +"rotate": 1.0 } storeType = { "atk": 1, @@ -23,14 +24,14 @@ storeType = { "rotate": 3 } descriptionTemplate = "召唤$count支[b]火山[/b],以$rotate的速度旋转,接触时造成$atk点伤害,在$life秒后停止。" -cooldown = 7000.0 +cooldown = 6000.0 debugRebuild = true [node name="avatar" parent="container/info" index="0"] texture = ExtResource("2_hh01t") [node name="beachball" parent="container/info/infos" index="1"] -count = 500 +count = 300 [node name="soul" parent="container/info/infos" index="2"] count = 1 @@ -41,4 +42,4 @@ quality = 3 typeTopic = 2 [node name="description" parent="container" index="2"] -text = "[center]召唤[color=cyan]1[/color]支[b]火山[/b],以[color=cyan]2.0°[/color]的速度旋转,接触时造成[color=cyan]20[/color]点伤害,在[color=cyan]5.00[/color]秒后停止。[/center]" +text = "[center]召唤[color=cyan]2[/color]支[b]火山[/b],以[color=cyan]1.0°[/color]的速度旋转,接触时造成[color=cyan]25[/color]点伤害,在[color=cyan]5.00[/color]秒后停止。[/center]" diff --git a/scripts/Contents/Weapons/Volcano.gd b/scripts/Contents/Weapons/Volcano.gd index 01fdf3b..4c904b5 100644 --- a/scripts/Contents/Weapons/Volcano.gd +++ b/scripts/Contents/Weapons/Volcano.gd @@ -2,14 +2,14 @@ extends Weapon func update(to: int, origin: Dictionary, _entity: EntityBase): - origin["atk"] += 5 * to * soulLevel + origin["atk"] += 3 * to * soulLevel origin["count"] += 1 * (soulLevel - 1) - origin["rotate"] += 0.1 * to * soulLevel - origin["life"] += 0.05 * to * soulLevel + origin["rotate"] += 0.05 * to * soulLevel + origin["life"] += 0.1 * to * soulLevel return origin func attack(entity: EntityBase): for i in readStore("count"): - for j in BulletBase.generate(ComponentManager.getBullet("Volcano"), entity, entity.findWeaponAnchor("normal"), deg_to_rad(360.0 / readStore("count") * i)): + for j in BulletBase.generate(ComponentManager.getBullet("Volcano"), entity, entity.findWeaponAnchor("normal"), deg_to_rad(360.0 / readStore("count") * i), false, false, true, true): var bullet: Volcano = j bullet.damage = readStore("atk") bullet.rotates = readStore("rotate") diff --git a/scripts/Statemachine/BulletBase.gd b/scripts/Statemachine/BulletBase.gd index 829c69c..2474777 100644 --- a/scripts/Statemachine/BulletBase.gd +++ b/scripts/Statemachine/BulletBase.gd @@ -151,7 +151,8 @@ static func generate( spawnRotation: float, asChildSplit: bool = false, asChildRefract: bool = false, - addToWorld: bool = true + addToWorld: bool = true, + ignoreOffset: bool = false ): var extraCount = launchBy.fields.get(FieldStore.Entity.EXTRA_BULLET_COUNT) var count = 1 + MathTool.shrimpRate(extraCount) @@ -162,7 +163,7 @@ static func generate( instance.isChildRefract = asChildRefract instance.launcher = launchBy instance.position = spawnPosition - instance.rotation = spawnRotation + deg_to_rad(randf_range(-launchBy.fields.get(FieldStore.Entity.OFFSET_SHOOT), launchBy.fields.get(FieldStore.Entity.OFFSET_SHOOT))) + instance.rotation = spawnRotation + deg_to_rad(launchBy.fields.get(FieldStore.Entity.OFFSET_SHOOT) * randf_range(-1, 1) * int(!ignoreOffset)) if addToWorld: WorldManager.rootNode.call_deferred("add_child", instance) instance.add_to_group("bullets")