Sha256: 2fa62a863c56e01c1c7f7e455b44569b84ccd9e337886fe07a73a3dbc60f9364
Contents?: true
Size: 1.81 KB
Versions: 2
Compression:
Stored size: 1.81 KB
Contents
# frozen_string_literal: true # coding: utf-8 require 'cureutils/logic/base_logic' # Singleton class for cure echo class EchoLogic < BaseLogic module EchoMode TRANSFORM = 1 ATTACK = 2 end def initialize super @cure_name = 'echo' @message_mode = EchoMode::TRANSFORM @style_priority = [] end def precure(cure_name = false) @cure_name = cure_name || 'echo' end def msg_transform(flag = true) @message_mode = EchoMode::TRANSFORM if flag end def msg_attack(flag = false) @message_mode = EchoMode::ATTACK if flag end def nosleep(flag = true) Rubicure::Girl.sleep_sec = 1 Rubicure::Girl.sleep_sec = 0 if flag end def style(style) @style_priority << style.to_sym if style end def print_results return 1 unless existing_precure? precure = Cure.send(@cure_name.to_sym) if @message_mode == EchoMode::TRANSFORM precure = original_transform(precure) elsif @message_mode == EchoMode::ATTACK precure = original_transform(precure) precure.attack! end 0 end private def original_transform(precure) return precure.transform! unless transformable?(precure) chosen_style = @style_priority.find do |s| precure.transform_styles.include?(s) end if chosen_style precure.transform! chosen_style else default_style, _entity = precure.transform_styles.first precure.transform! default_style end end def transformable?(precure) return false if precure.transform_calls.nil? return true if precure.respond_to?(:transform_styles) false end def existing_precure? found_precure = Rubicure::Girl.config.find do |k, _v| k == @cure_name.to_sym end if found_precure true else @err.puts "No such precure #{@cure_name}" false end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
cureutils-1.1.0 | lib/cureutils/logic/echo_logic.rb |
cureutils-1.0.1 | lib/cureutils/logic/echo_logic.rb |